==PREFS==
js.formatter.spaces.after.commas=1
js.formatter.spaces.after.assignment.operator=1
js.formatter.spaces.after.arithmetic.operator=1
js.formatter.spaces.after.conditional.operator=1
js.formatter.indent.case.body=true
js.formatter.indent.switch.body=true
js.formatter.spaces.before.for.semicolon.operator=0
js.formatter.spaces.before.parentheses=0
js.formatter.spaces.after.semicolon.operator=1
js.formatter.spaces.before.postfix.operator=0
js.formatter.spaces.after.postfix.operator=0
js.formatter.spaces.before.relational.operator=1
js.formatter.spaces.before.case.colon.operator=1
js.formatter.spaces.before.unary.operator=0
js.formatter.wrap.comments=false
js.formatter.indent.group.body=true
js.formatter.line.after.function.declaration=1
js.formatter.spaces.after.concatenation.operator=1
js.formatter.wrap.comments.length=80
js.formatter.spaces.before.conditional.operator=1
js.formatter.formatter.tabulation.size=4
js.formatter.spaces.after.relational.operator=1
js.formatter.spaces.after.case.colon.operator=1
js.formatter.spaces.before.prefix.operator=0
js.formatter.indent.blocks=true
js.formatter.spaces.before.concatenation.operator=1
js.formatter.line.preserve=1
js.formatter.brace.position.case.block=same.line
js.formatter.brace.position.switch.block=same.line
js.formatter.formatter.tabulation.char=editor
js.formatter.indent.function.body=true
js.formatter.line.after.function.declaration.expression=0
js.formatter.formatter.indentation.size=4
js.formatter.newline.before.name.value.pairs=true
js.formatter.spaces.after.parentheses=0
js.formatter.spaces.after.for.semicolon.operator=1
js.formatter.newline.before.if.in.elseif=false
js.formatter.spaces.before.key.value.operator=1
js.formatter.spaces.before.commas=0
js.formatter.spaces.after.unary.operator=0
js.formatter.spaces.before.arithmetic.operator=1
js.formatter.spaces.before.assignment.operator=1
js.formatter.newline.before.dowhile=false
js.formatter.newline.before.else=false
js.formatter.spaces.before.semicolon.operator=0
js.formatter.newline.before.finally=false
js.formatter.newline.before.catch=false
js.formatter.spaces.after.prefix.operator=0
js.formatter.brace.position.function.declaration=same.line
js.formatter.spaces.after.key.value.operator=1
js.formatter.brace.position.blocks=same.line
js.formatter.spaces.before.declaration.parentheses.opening=0
js.formatter.spaces.after.declaration.parentheses.opening=0
js.formatter.spaces.before.declaration.parentheses.closing=0
js.formatter.spaces.before.conditional.parentheses.opening=1
js.formatter.spaces.after.conditional.parentheses.opening=0
js.formatter.spaces.before.conditional.parentheses.closing=0
js.formatter.spaces.before.invocation.parentheses.opening=0
js.formatter.spaces.after.invocation.parentheses.opening=0
js.formatter.spaces.before.invocation.parentheses.closing=0
js.formatter.spaces.before.loop.parentheses.opening=1
js.formatter.spaces.after.loop.parentheses.opening=0
js.formatter.spaces.before.loop.parentheses.closing=0
js.formatter.spaces.before.array.access.parentheses.opening=0
js.formatter.spaces.after.array.access.parentheses.opening=0
js.formatter.spaces.before.array.access.parentheses.closing=0
==CONTENT==
var require={analytics:!0,app:{copyright:"2012 by nle",description:"not specified",guid:"bf0a38a2-135a-4462-9b23-ca9764741d80",id:"dddd",name:"dddd",publisher:"nle",url:"http://",version:"1.0"},deployType:"production",has:{"analytics-use-xhr":!1,"declare-property-methods":!0,"json-stringify":function(){return"JSON"in window&&"[object Function]"==JSON.toString()&&'{"a":1}'!==JSON.stringify({a:0},function(i,k){return k||1})},"object-defineproperty":function(){var i;var k=Object.defineProperty,c={};
try{k&&k(c,"x",{}),i=c.hasOwnProperty("x")}catch(j){}return i},opera:"undefined"===typeof opera||"[object Opera]"!=opera.toString()},packages:[{location:"./titanium",main:"./Ti",name:"Ti"}],project:{id:"ddd.ddd",name:"dddd"},ti:{buildHash:"59b3a90",buildDate:"02/23/12 17:46",version:"1.8.2"},vendorPrefixes:{css:",-webkit-,-moz-,-ms-,-o-,-khtml-".split(","),dom:",Webkit,Moz,ms,O,Khtml".split(",")}};
(function(i){function k(a){var b=1;for(a||(a={});b<arguments.length;){var g=a,e=arguments[b++],f=void 0;for(f in e)e.hasOwnProperty(f)&&(g[f]=e[f])}return a}function c(a,b){var g=0,e=a&&a.length||0,f=Array.prototype.slice.call(arguments,0);for(f.shift();g<e;)f[0]=a[g++],b.apply(null,f)}function j(a,b){var g=(void 0===a?"":{}.toString.call(a)).match(/^\[object (.+)\]$/),g=g?g[1]:"Undefined";return b?b===g:g}function h(a){for(var b in a)break;return!a||!a.call&&!b}function f(a,b,g){var e,f=[],r=[];
if(g)a=i.eval(a);else{for(e in b)f.push(e+"=__vars."+e),r.push(e+":"+e);a=(new Function("__vars",(f.length?"var "+f.join(",")+";\n":"")+a+"\n;return {"+r.join(",")+"};"))(b)}return"_firebugIgnore"===a?null:a}function e(a){for(var b=[],g,e,a=a.replace(/\\/g,"/").split("/");a.length;)g=a.shift(),".."===g&&b.length&&".."!==e?(b.pop(),e=b[b.length-1]):"."!==g&&b.push(e=g);return b.join("/")}function b(a){j(E[a],"Function")&&(E[a]=E[a](i,v,s));return E[a]}function g(a,b,g,e){var f=j(e,"Function")?function(){return e.apply(g,
arguments)}:j(e,"String")?function(){return g[e].apply(g,arguments)}:g;a.addEventListener(b,f,!1);return function(){a.removeEventListener(b,f,!1)}}function a(a,b){a=a.name?a:{name:a};a.location=(/(^\/)|(\:)/.test(b)?b:"")+(a.location||a.name);a.main=(a.main||"main").replace(/(^\.\/)|(\.js$)/,"")}function r(a,b,g,f){function r(){var a=Array.prototype.slice.call(arguments,0);1<a.length||(a[1]=0);a[2]=l;return o.apply(null,a)}var c=a&&a.match(t),j=A.test(a),h=C.test(a),y={},i=null,u,n,p=H,l=this;l.name=
a;l.deps=g||[];l.plugin=null;l.callbacks=[];if(!c&&(h||j&&!b))l.url=a;else if(c)l.plugin=l.deps.length,l.pluginArgs=c[2],l.pluginCfg=B[c[1]],l.deps.push(c[1]);else if(a){a=l.name=e((j?b.name+"/../":"")+a);if(A.test(a))throw Error('Irrational path "'+a+'"');if(c=a.match(J))for(g=0,j=B.packages.length,u=c[1];g<j;g++)if(n=B.packages[g],n.name===u){i=u;/\/$/.test(g=n.location)||(g+="/");p+=e(g+(c[2]?a:n.main));break}if(!i||!c&&h)i="",p+=a;l.url=p+".js"}l.pkg=i;l.rawDef=f;l.loaded=!!f;l.refModule=b;r.toUrl=
function(){var a=Array.prototype.slice.call(arguments,0);null===l.plugin&&(a[1]=l);return q.apply(null,a)};k(r,L,{cache:o.cache});l.cjs={require:r,exports:y,module:{exports:y}}}function y(a,b,g,e,f,c){b=new r(a,b,g,e);g=b.name;return a in b.cjs?(b.def=b.cjs[a],b.loaded=b.executed=1,b):f||!g?b:!D[g]||!D[g].executed||c?D[g]=b:D[g]}function u(a){var b,g=F.slice(0);for(F=[];g.length;)b=g.shift(),b.name||(b.name=a.name),b.name===a.name?(D[b.name]=a,a.deps=b.deps,a.rawDef=b.rawDef,a.refModule=b.refModule,
a.execute()):(D[b.name]=b,b.execute());delete G[a.name]}function w(a,b,g,e){var f,r,c,h=j(a,"String");h&&(a=[a],e=1);for(f=0,r=c=a.length;f<r;f++)a[f]&&function(f){y(a[f],g).load(!!e,function(g){g.execute(function(){a[f]=g.def;0===--c&&(b(a),c=-1)})})}(f);0===c&&b(a);return h?a[0]:a}function l(a,b,g){var e=["require"];g||(g=b||a,1===g.length||e.concat(["exports","module"]),"string"!==typeof a?(b=b?a:e,a=0):b=e);if(z.test(a))throw Error('Not allowed to define reserved module id "'+a+'"');j(g,"Function")&&
1===arguments.length&&g.toString().replace(x,"").replace(n,function(a,g){b.push(g)});e=y(a,0,b,g,0,1);if(a&&!G[a])e.execute();else if(a||!h(G))F.push(e);else throw Error("Unable to define anonymous module");}function q(a,b){var g=a.match(/(.+)(\.[^\/\.]+?)$/),e=y(g&&g[1]||a,b,0,0,1),f=e.url;null!==e.pkg&&(f=f.substring(0,f.length-3));return f+(g&&g[2]||"")}function o(a,b,g){return w(a,function(a){b&&b.apply(null,a)},g)||o}var p,v=i.document,s=v.createElement("div"),x=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,
n=/[^.]require\(\s*["']([^'"\s]+)["']\s*\)/g,z=/exports|module/,t=/^(.+?)\!(.*)$/,C=/(^\/)|(\:)|(\.js$)/,A=/^\./,J=/([^\/]+)\/?(.*)/,K=/^url\:(.+)/,B=i.require||{},M=B.packagePaths||{},H=B.baseUrl||"./",E=B.hasCache||{},F=[],I={},G={},D={},L;b.add=function(a,g,e,f){if(void 0===E[a]||f)E[a]=g;return e&&b(a)};g.once=function(a,b,e){var f=g(a,b,function(){f&&f();return e.apply(this,arguments)});return f};/\/$/.test(H)||(H+="/");c(B.packages,a);for(p in M)c(M[p],a,p+"/");for(p in B.has)b.add(p,B.has[p],
0,!0);r.prototype.load=function(a,b){var e,r,y,k=this;e=I[k.name];var o=function(){c(k.callbacks,function(a){a(k)});k.callbacks=[]},n=function(a){k.loaded=1;if(k.rawDef=a)j(a,"String")?/\.js$/.test(k.url)?(a=f(a,k.cjs),k.def=k.rawDef=!h(a.exports)?a.exports:a.module&&!h(a.module.exports)?a.module.exports:null,null===k.def&&(k.rawDef=a)):(k.def=a,k.executed=1):j(a,"Function")&&(G[k.name]=k,a());u(k);o();return 1};k.sync=a;b&&k.callbacks.push(b);if(k.executed||!k.url)k.loaded=1,o();else if(!G[k.name]){if(k.loaded||
e)return n(e);G[k.name]=k;if(a){r=new XMLHttpRequest;r.open("GET",k.url,!1);r.send(null);if(200===r.status)return n(r.responseText);throw Error('Failed to load module "'+k.name+'": '+r.status);}r=k.node=v.createElement("script");r.type="text/javascript";r.charset="utf-8";r.async=!0;y=g(r,"load",function(a){var a=a||i.event,b=a.target||a.srcElement;if("load"===a.type||/complete|loaded/.test(b.readyState))y(),n()});r.src=k.url;e=v.getElementsByTagName("script")[0];e.parentNode.insertBefore(r,e)}};r.prototype.execute=
function(a){var b=this;b.executed?a&&a():w(b.deps,function(g){var e,r=b.rawDef,c=F.slice(0);F=[];b.def=b.def||r&&(j(r,"String")?f(r,b.cjs):j(r,"Function")?r.apply(null,g):j(r,"Object")?function(a,b){for(var g in b)this[g]=b[g];return a}.call({},r,b.cjs):null)||b.cjs.exports;u(b);F=c;null!==b.plugin&&(e=g[b.plugin],e.dynamic&&delete D[b.name],e.load&&e.load(b.pluginArgs,b.cjs.require,function(g){b.def=g;b.executed=1;a&&a()},b.pluginCfg));if(!e||!e.load)b.executed=1,a&&a()},b.refModule,b.sync)};l.amd=
{plugins:!0,vendor:"titanium"};o.toUrl=q;o.config=B;k(o,L={each:c,evaluate:f,has:b,is:j,mix:k,on:g});o.cache=function(a){var b,g;if(j(a,"String"))return I[a];for(b in a)(g=b.match(K))?I[q(g[1])]=a[b]:(g=y(b,0,0,a[b],1),I[g.name]=g.rawDef)};i.require=o;i.define=l})(window);
require.cache({"Ti/UI/TableView":function(){define("Ti/_/declare,Ti/UI/View,Ti/_/style,Ti/_/lang,Ti/UI/MobileWeb/TableViewSeparatorStyle,Ti/UI".split(","),function(i,k,c,j,h,f){var e=c.set,b=require.is,g=j.isDef;return i("Ti.UI.TableView",k,{constructor:function(){function a(){return g._header._measuredHeight+g._sections._measuredHeight+g._footer._measuredHeight}var b=this._contentContainer=f.createView({width:"100%",height:"100%",left:0,top:0,layout:"vertical"});this.add(b);e(b.domNode,"overflow",
"hidden");b.add(this._header=f.createView({height:"auto",layout:"vertical"}));b.add(this._sections=f.createView({height:"auto",layout:"vertical"}));b.add(this._footer=f.createView({height:"auto",layout:"vertical"}));this.data=[];this._createVerticalScrollBar();var g=this,c;this.addEventListener("touchstart",function(g){c=g.y;this._startScrollBars({y:b.domNode.scrollTop/(a()-this._measuredHeight)},{y:b._measuredHeight/a()})});this.addEventListener("touchend",function(a){c=null;this._endScrollBars();
this._isScrollBarActive&&this.fireEvent("scrollEnd",{contentOffset:{x:0,y:b.domNode.scrollTop+this._header._measuredHeight},contentSize:{width:this._sections._measuredWidth,height:this._sections._measuredHeight},size:{width:this._measuredWidth,height:this._measuredHeight},x:a.x,y:a.y})});this.addEventListener("touchmove",j.hitch(this,function(g){b.domNode.scrollTop+=c-g.y;c=g.y;this._updateScrollBars({y:b.domNode.scrollTop/(a()-this._measuredHeight)});this._fireScrollEvent(g.x,g.y)}));this.domNode.addEventListener("mousewheel",
function(e){g._startScrollBars({y:b.domNode.scrollTop/(a()-g._measuredHeight)},{y:b._measuredHeight/a()});setTimeout(function(){b.domNode.scrollLeft-=e.wheelDeltaX;b.domNode.scrollTop-=e.wheelDeltaY;g._updateScrollBars({y:(b.domNode.scrollTop-e.wheelDeltaY)/(a()-g._measuredHeight)});setTimeout(function(){g._endScrollBars()},10)},10)});require.on(b.domNode,"scroll",j.hitch(this,function(){this._touching||this._fireScrollEvent()}))},_fireScrollEvent:function(a,b){for(var g,e=0,f=this._contentContainer.scrollTop,
c=this._sections.children,j=0;j<c.length;j+=2){var h=c[j],k=h._measuredTop-f;if(0<h._measuredTop+h._measuredHeight-f&&k<this._contentContainer._measuredHeight)for(var k=h._rows.children,i=1;i<k.length;i+=2){var s=k[i],x=s._measuredTop+h._measuredTop-f;0<s._measuredTop+s._measuredHeight+h._measuredTop-f&&x<this._contentContainer._measuredHeight&&(e++,g||(g=s))}}this._isScrollBarActive&&this.fireEvent("scroll",{contentOffset:{x:0,y:this._contentContainer.scrollTop},contentSize:{width:this._sections._measuredWidth,
height:this._sections._measuredHeight},firstVisibleItem:g,size:{width:this._contentContainer._measuredWidth,height:this._contentContainer._measuredHeight},totalItemCount:this.data.length,visibleItemCount:e,x:a,y:b})},_defaultWidth:"100%",_defaultHeight:"100%",_getContentOffset:function(){return{x:this._contentContainer.scrollLeft,y:this._contentContainer.scrollTop}},_handleTouchEvent:function(a,b){if("click"===a||"singletap"===a){b.row=this._tableViewRowClicked;b.rowData=this._tableViewRowClicked;
for(var g=0,e=this._sections.children,f=0;f<e.length;f+=2){var c=e[f]._rows.children.indexOf(this._tableViewRowClicked);if(-1!==c){g+=Math.floor(c/2);break}else g+=e[f].rowCount}b.index=g;b.section=this._tableViewSectionClicked;b.searchMode=!1}k.prototype._handleTouchEvent.apply(this,arguments)},_tableViewRowClicked:null,_tableViewSectionClicked:null,_createSeparator:function(){return f.createView({height:1,width:"100%",backgroundColor:"white"})},_createDecorationLabel:function(a){return f.createLabel({text:a,
backgroundColor:"darkGrey",color:"white",width:"100%",height:"auto",left:0,font:{fontSize:22}})},_refreshSections:function(){for(var a=0;a<this._sections.children.length;a+=2)this._sections.children[a]._refreshRows();this._triggerLayout()},_calculateLocation:function(a){for(var b=0,g,e=0;e<this._sections.children.length;e+=2)if(g=this._sections.children[e],b+=g.rowCount,a<b)return{section:g,localIndex:g.rowCount-(b-a)};if(a==b)return{section:g,localIndex:g.rowCount}},_insert:function(a,b){var g=this._calculateLocation(b);
g&&g.section.add(a,g.localIndex);this._refreshSections()},_remove:function(a){(a=this._calculateLocation(a))&&a.section._removeAt(a.localIndex)},appendRow:function(a){this._currentSection.add(a);this._refreshSections()},deleteRow:function(a){this._remove(a)},insertRowAfter:function(a,b){this._insert(b,a+1)},insertRowBefore:function(a,b){this._insert(b,a)},updateRow:function(a,b){this._remove(a);this._insert(b,a)},scrollToIndex:function(a){if(a=this._calculateLocation(a))this._contentContainer.scrollTop=
a.section._measuredTop+a.section._rows.children[2*a.localIndex+1]._measuredTop},scrollToTop:function(a){this._contentContainer.scrollTop=a},properties:{data:{set:function(a){if(b(a,"Array")){this._sections._removeAllChildren();for(var e in a)if(!g(a[e].declaredClass)||"Ti.UI.TableViewRow"!=a[e].declaredClass&&"Ti.UI.TableViewSection"!=a[e].declaredClass)a[e]=f.createTableViewRow(a[e]);0==a.length&&(this._sections.add(this._currentSection=f.createTableViewSection({_tableView:this})),this._sections.add(this._createSeparator()));
for(e=0;e<a.length;e++)"Ti.UI.TableViewRow"===a[e].declaredClass?(0===e&&(this._sections.add(this._currentSection=f.createTableViewSection({_tableView:this})),this._sections.add(this._createSeparator())),this._currentSection.add(a[e])):"Ti.UI.TableViewSection"===a[e].declaredClass&&(a[e]._tableView=this,this._sections.add(this._currentSection=a[e]),this._sections.add(this._createSeparator()));this._refreshSections();return a}}},footerTitle:{set:function(a,b){b!=a&&(this._footer._removeAllChildren(),
this._footer.add(this._createDecorationLabel(a)));return a}},footerView:{set:function(a,b){b!=a&&(this._footer._removeAllChildren(),this._footer.add(a));return a}},headerTitle:{set:function(a,b){b!=a&&(this._header._removeAllChildren(),this._header.add(this._createDecorationLabel(a)),this._header.add(this._createSeparator()));return a}},headerView:{set:function(a,b){b!=a&&(this._header._removeAllChildren(),this._header.add(a));return a}},maxRowHeight:{post:function(a){this._refreshSections();return a},
value:"100%"},minRowHeight:{post:function(a){this._refreshSections();return a},value:"0%"},rowHeight:{post:function(a){this._refreshSections();return a},value:"50px"},separatorColor:{post:function(a){this._refreshSections();return a},value:"lightGrey"},separatorStyle:{post:function(a){this._refreshSections();return a},value:h.SINGLE_LINE}}})})},"Ti/_/Gestures/TwoFingerTap":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.TwoFingerTap",
c,{name:"twofingertap",_touchStartLocation:null,_touchEndLocation:null,_fingerDifferenceThresholdTimer:null,_fingerDifferenceThreshold:100,_driftThreshold:25,processTouchStartEvent:function(c){var h=c.changedTouches[0].clientX,f=c.changedTouches[0].clientY,e=c.touches.length,b=c.changedTouches.length;1==e&&1==b?(this._touchStartLocation=[{x:h,y:f}],this._fingerDifferenceThresholdTimer=setTimeout(k.hitch(this,function(){this._touchStartLocation=null}),this._fingerDifferenceThreshold)):2==e&&1==b?(clearTimeout(this._fingerDifferenceThresholdTimer),
this._touchStartLocation&&this._touchStartLocation.push({x:h,y:f})):this._touchStartLocation=2==e&&2==b?[{x:h,y:f},{x:c.changedTouches[1].clientX,y:c.changedTouches[1].clientY}]:null},processTouchEndEvent:function(c,h){var f=c.changedTouches[0].clientX,e=c.changedTouches[0].clientY,b=c.touches.length,g=c.changedTouches.length;if(1==b&&1==g)this._touchEndLocation=[{x:f,y:e}],this._fingerDifferenceThresholdTimer=setTimeout(k.hitch(this,function(){this._touchStartLocation=null}),this._fingerDifferenceThreshold);
else if(0==b&&(1==g||2==g)){if(this._touchStartLocation&&2==this._touchStartLocation.length){for(b=0;b<g;b++)this._touchEndLocation.push({x:f,y:e});f=Math.abs(this._touchStartLocation[0].x-this._touchEndLocation[0].x)<this._driftThreshold&&Math.abs(this._touchStartLocation[0].y-this._touchEndLocation[0].y)<this._driftThreshold;e=Math.abs(this._touchStartLocation[1].x-this._touchEndLocation[1].x)<this._driftThreshold&&Math.abs(this._touchStartLocation[1].y-this._touchEndLocation[1].y)<this._driftThreshold;
if(!f||!e)f=Math.abs(this._touchStartLocation[0].x-this._touchEndLocation[1].x)<this._driftThreshold&&Math.abs(this._touchStartLocation[0].y-this._touchEndLocation[1].y)<this._driftThreshold,e=Math.abs(this._touchStartLocation[1].x-this._touchEndLocation[0].x)<this._driftThreshold&&Math.abs(this._touchStartLocation[1].y-this._touchEndLocation[0].y)<this._driftThreshold;f&&e&&!h._isGestureBlocked(this.name)&&(this.blocking.push("singletap"),this.blocking.push("doubletap"),this.blocking.push("longpress"),
k.hitch(h,h._handleTouchEvent(this.name,{x:(this._touchStartLocation[0].x+this._touchStartLocation[1].x)/2,y:(this._touchStartLocation[0].y+this._touchStartLocation[1].y)/2})));this._touchStartLocation=null}}else this._touchStartLocation=null},finalizeTouchEndEvent:function(){this.blocking=[]},processTouchCancelEvent:function(){this._touchStartLocation=null}})})},"Ti/API":function(){define(["Ti/_/Evented","Ti/_/lang"],function(i,k){var c={};require.each(["debug","error","info","log","warn"],function(j){c[j]=
function(c){console[j]("["+j.toUpperCase()+"]",c)}});return k.setObject("Ti.API",i,c)})},"Ti/_/UI/Widget":function(){define(["Ti/_/declare","Ti/UI/View"],function(i,k){return i("Ti._.UI.Widget",k)})},"Ti/_/declare":function(){define(["Ti/_","Ti/_/lang"],function(i,k){function c(b,a){for(var e=[],c=[{cls:0,refs:[]}],j={},h=1,k=b.length,i=0,o,p,v,s,x;i<k;++i){if(o=b[i]){if(!f(o,"Function"))throw Error('Base class not a function for "'+a+'" ['+i+"]");}else throw Error('Unknown base class for "'+a+'" ['+
i+"]");p=o._meta?o._meta.bases:[o];v=0;for(o=p.length-1;0<=o;--o)s=p[o].prototype,s.hasOwnProperty("declaredClass")||(s.declaredClass="uniqName_"+counter++),s=s.declaredClass,j.hasOwnProperty(s)||(j[s]={count:0,refs:[],cls:p[o]},++h),s=j[s],v&&v!==s&&(s.refs.push(v),++v.count),v=s;++v.count;c[0].refs.push(v)}for(;c.length;){v=c.pop();e.push(v.cls);for(--h;x=v.refs,1==x.length;){v=x[0];if(!v||--v.count){v=0;break}e.push(v.cls);--h}if(v)for(i=0,k=x.length;i<k;++i)v=x[i],--v.count||c.push(v)}if(h)throw Error("Can't build consistent linearization for "+
a+'"');o=b[0];e[0]=o?o._meta&&o===e[e.length-o._meta.bases.length]?o._meta.bases.length:1:0;return e}function j(g,a){return function(){var e=arguments,c=e,j=e[0],h,i,q;q=g.length;var o;i=this.declaredClass;b[i]||(b[i]=0);this.widgetId=i+":"+b[i]++;if(a&&(j&&j.preamble||this.preamble)){o=Array(g.length);o[0]=e;for(i=0;;){(j=e[0])&&(h=j.preamble)&&(e=h.apply(this,e)||e);h=g[i].prototype;(h=h.hasOwnProperty("preamble")&&h.preamble)&&(e=h.apply(this,e)||e);if(++i===q)break;o[i]=e}}for(i=q-1;0<=i;--i){h=
g[i];if(q=h._meta)h=q.ctor,k.mixProps(this,q.hidden);f(h,"Function")&&h.apply(this,o?o[i]:e)}if(f(j,"Object"))for(i in h=this.constants,j)j.hasOwnProperty(i)&&((h&&i in h?h.__values__:this)[i]=j[i]);(h=this.postscript)&&h.apply(this,c)}}function h(b,a){for(var e in a)a.hasOwnProperty(e)&&!/^(constructor|properties|constants|__values__)$/.test(e)&&(f(a[e],"Function")&&(a[e].nom=name),b[e]=a[e]);return b}var f=require.is,e=require.mix,b={};return i.declare=function(b,a,r){f(b,"String")||(r=a,a=b,b=
"");var r=r||{},i=[r.constructor],u,w;w=1;var l={};u=f(a);"Array"===u?(i=c(a,b),a=i[w=i.length-i[0]]):"Function"===u?(u=a._meta,i=i.concat(u?u.bases:a)):"Object"===u?(u=new Function,e(u.prototype,a),i[0]=a=u):a=0;if(a)for(w-=1;;--w){u=new Function;u.prototype=a.prototype;l=new u;if(!w)break;u=i[w];(u._meta?h:e)(l,u.prototype);u=new Function;u.superclass=a;u.prototype=l;a=l.constructor=u}h(l,r);u=r.constructor;u!==Object.prototype.constructor&&(u.nom="constructor",l.constructor=u);e(i[0]=u=j(i,u),
{_meta:{bases:i,hidden:r,ctor:r.constructor},superclass:a&&a.prototype,extend:function(a){h(this.prototype,a);return this},prototype:l});e(l,{constructor:u,isInstanceOf:function(a){for(var b=this.constructor._meta.bases,g=0,e=b.length;g<e;++g)if(b[g]===a)return!0;return this instanceof a}});b&&(l.declaredClass=b,k.setObject(b,u));return u}})},"Ti/_/Gestures/DoubleTap":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.DoubleTap",
c,{name:"doubletap",_firstTapTime:null,_firstTapLocation:null,_timeThreshold:250,_driftThreshold:25,initTracker:function(c,h){this._firstTapTime=(new Date).getTime();this._firstTapLocation={x:c,y:h}},processTouchEndEvent:function(c,h){if(0==c.touches.length&&1==c.changedTouches.length){var f=c.changedTouches[0].clientX,e=c.changedTouches[0].clientY;if(this._firstTapTime){var b=(new Date).getTime()-this._firstTapTime;this._firstTapTime=null;b<this._timeThreshold&&Math.abs(this._firstTapLocation.x-
f)<this._driftThreshold&&Math.abs(this._firstTapLocation.y-e)<this._driftThreshold?(f={x:f,y:e},h._isGestureBlocked(this.name)||(this.blocking.push("singletap"),k.hitch(h,h._handleTouchEvent("dblclick",f)),k.hitch(h,h._handleTouchEvent(this.name,f)))):this.initTracker(f,e)}else this.initTracker(f,e)}},finalizeTouchEndEvent:function(){this.blocking=[]},processTouchCancelEvent:function(){this._firstTapTime=null}})})},"Ti/_/lang":function(){define(function(){function i(f,e){return[].concat(Array.prototype.slice.call(f,
e||0))}function k(f,e){var b=i(arguments,2);named=h(e,"String");return function(){var g=f||c,a=named?g[e]:e;return a&&a.apply(g,b.concat(i(arguments)))}}var c=this,j,h=require.is;return{hitch:j=function(f,e){if(2<arguments.length)return k.apply(c,arguments);e||(e=f,f=null);if(h(e,"String")){f=f||c;if(!f[e])throw['hitch: scope["',e,'"] is null (scope="',f,'")'].join("");return function(){return f[e].apply(f,arguments||[])}}return!f?e:function(){return e.apply(f,arguments||[])}},isDef:function(f){return!h(f,
"Undefined")},mixProps:function(f,e,b){var g,a,c,i={properties:1,constants:0};for(c in e)if(e.hasOwnProperty(c)&&!/^(constructor|__values__)$/.test(c))if(c in i)for(a in g=f[c]||(f[c]={}),g.__values__||(g.__values__={}),e[c])(function(a,b,g,e,c,r,i){var k=h(c,"Object"),y=k&&h(c.get,"Function")&&c.get,n=k&&h(c.set,"Function")&&c.set,z=k&&h(c.post),t="Function"===z?c.post:"String"===z?j(b,c.post):0;k&&(y||n||t)?e[a]=c.value:h(c,"Function")?y=c:e[a]=c;Object.defineProperty(g,a,{get:function(){return y?
y.call(b,e[a]):e[a]},set:function(g){var f=[g,e[a]];f[0]=e[a]=n?n.apply(b,f):g;t&&t.apply(b,f)},configurable:!0,enumerable:!0});Object.defineProperty(f,a,{get:function(){return g[a]},set:function(b){if(!i)throw Error('Property "'+a+'" is read only');g[a]=b},configurable:!0,enumerable:!0});if(require.has("declare-property-methods")&&(i||a.toUpperCase()!==a))b["get"+r]=function(){return g[a]},i&&(b["set"+r]=function(b){return g[a]=b})})(a,f,g,g.__values__,e[c][a],a.substring(0,1).toUpperCase()+a.substring(1),
i[c]);else b&&(f[c]=e[c]);return f},setObject:function(f){var e=f.split("."),b=e.pop(),g=window,a=0,c=e[a++];if(c){do g=c in g?g[c]:g[c]={};while(g&&(c=e[a++]))}if(g&&b){b=b in g?g[b]:g[b]={};for(a=1;a<arguments.length;a++)h(arguments[a],"Object")?this.mixProps(b,arguments[a],1):b=arguments[a];return b}},toArray:i,urlEncode:function(f){var e=encodeURIComponent,b=[],g,a;for(g in f)f.hasOwnProperty(g)&&(h(a=f[g],"Array")||(a=[a]),g=e(g)+"=",require.each(a,function(a){b.push(g+e(a))}));return b.join("&")},
val:function(f,e){return h(f,"Undefined")?e:f}}})},"Ti/UI/AlertDialog":function(){define(["Ti/_/declare","Ti/_/Evented","Ti/UI"],function(i,k,c){return i("Ti.UI.AlertDialog",k,{show:function(){function j(a,g,f){a=c.createButton({left:5,right:5,top:5,bottom:f,height:"auto",title:a,index:g});g===b.cancel&&(a.domNode.className+=" TiUIButtonCancel");e.add(a);a.addEventListener("singletap",function(){h.close();b._alertWindow=void 0;b.fireEvent("click",{index:g,cancel:b.cancel===g})})}var h=this._alertWindow=
c.createWindow(),f=c.createView({backgroundColor:"black",opacity:0,left:0,top:0,right:0,bottom:0});h.add(f);var e=c.createView({width:"50%",height:"auto",backgroundColor:"white",layout:"vertical",borderRadius:3,opacity:0});h.add(e);e.add(c.createLabel({text:this.title,font:{fontWeight:"bold"},left:5,right:5,top:5,height:"auto",textAlign:c.TEXT_ALIGNMENT_CENTER}));e.add(c.createLabel({text:this.message,left:5,right:5,top:5,height:"auto",textAlign:c.TEXT_ALIGNMENT_CENTER}));var b=this;if(require.is(this.buttonNames,
"Array"))for(var g=this.buttonNames,a=0;a<g.length;a++)j(g[a],a,a===g.length-1?5:0);else j(this.ok,0,5);h.open();setTimeout(function(){f.animate({opacity:0.5,duration:200},function(){e.animate({opacity:1,duration:200})})},30)},hide:function(){this._alertWindow&&this._alertWindow.close()},properties:{buttonNames:void 0,cancel:-1,message:"",messageid:{get:function(c){console.debug('Property "Titanium.UI.AlertDialog#.messageid" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.AlertDialog#.messageid" is not implemented yet.');
return c}},ok:"OK",okid:{get:function(c){console.debug('Property "Titanium.UI.AlertDialog#.okid" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.AlertDialog#.okid" is not implemented yet.');return c}},title:"",titleid:{get:function(c){console.debug('Property "Titanium.UI.AlertDialog#.titleid" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.AlertDialog#.titleid" is not implemented yet.');return c}}}})})},"Ti/_/UI/TextBox":function(){define("Ti/_/declare,Ti/_/dom,Ti/_/event,Ti/_/style,Ti/_/lang,Ti/_/UI/FontWidget,Ti/UI".split(","),
function(i,k,c,j,h,f,e){return i("Ti._.UI.TextBox",f,{_field:null,_preventDefaultTouchEvent:!1,_initTextBox:function(){var b=this._field;this._form=k.create("form",null,this.domNode);this._addStyleableDomNode(this._setFocusNode(b));require.on(b,"keydown",this,function(a){this.editable?13===a.keyCode&&(this.suppressReturn&&(c.stop(a),b.blur()),this.fireEvent("return")):c.stop(a)});require.on(b,"keypress",this,function(){this._capitalize()});var g=null,a="";require.on(b,"focus",this,function(){g=setInterval(h.hitch(this,
function(){var g=b.value,e=!1;a.length!=g.length?e=!0:a!=g&&(e=!0);e&&(this.fireEvent("change"),a=g)}),200)});require.on(b,"blur",this,function(){clearInterval(g)})},_capitalize:function(b){var g=this._field,b="off";switch(b||this.autocapitalization){case e.TEXT_AUTOCAPITALIZATION_ALL:g.value=g.value.toUpperCase();break;case e.TEXT_AUTOCAPITALIZATION_SENTENCES:b="on"}this._field.autocapitalize=b},blur:function(){this._field.blur();this.fireEvent("blur")},focus:function(){this._field.focus();this.fireEvent("focus")},
hasText:function(){return!this._field.value.length},properties:{autocapitalization:{value:e.TEXT_AUTOCAPITALIZATION_SENTENCES,set:function(b,g){b!==g&&this._capitalize(b);return b}},autocorrect:{value:!1,set:function(b){this._field.autocorrect=b?"on":"off";return b}},editable:!0,returnKeyType:{value:e.RETURNKEY_DEFAULT,set:function(b){var g="",a=this.domNode;b!==e.RETURNKEY_DEFAULT&&(deset=this._form,-1!==[4,8,10].indexOf(b)&&(g="Search"));this._field.title=g;k.place(this._field,a);return b}},suppressReturn:!0,
textAlign:{set:function(b){j.set(this._field,"text-align",b===e.TEXT_ALIGNMENT_RIGHT?"right":b===e.TEXT_ALIGNMENT_CENTER?"center":"left");return b}},value:{get:function(){return this._field.value},set:function(b){return this._capitalize(this._field.value=b)},value:""}}})})},"Ti/_/css":function(){define(["Ti/_","Ti/_/string"],function(i,k){function c(c,h,f){for(var e=0,b,g=" "+c.className+" ",h=require.is(h,"Array")?h:h.split(" ");e<h.length;e++)b=g.indexOf(" "+h[e]+" "),f&&-1===b?g+=h[e]+" ":!f&&
-1!==b&&(g=g.substring(0,b)+g.substring(b+h[e].length+1));c.className=k.trim(g)}return i.css={add:function(j,h){c(j,h,1)},remove:function(j,h){c(j,h)},clean:function(c){return c.replace(/[^A-Za-z0-9\-]/g,"")}}})},"Ti/Network":function(){define(["Ti/_/Evented","Ti/_/lang"],function(i,k){var c=navigator.connection,j=navigator.onLine,h=k.setObject("Ti.Network",i,{constants:{INADDR_ANY:null,NETWORK_LAN:1,NETWORK_MOBILE:3,NETWORK_NONE:0,NETWORK_UNKNOWN:-1,NETWORK_WIFI:2,NOTIFICATION_TYPE_ALERT:0,NOTIFICATION_TYPE_BADGE:1,
NOTIFICATION_TYPE_SOUND:2,READ_MODE:0,READ_WRITE_MODE:2,WRITE_MODE:1,networkType:function(){return!j?h.NETWORK_NONE:c&&c.type==c.WIFI?h.NETWORK_WIFI:c&&c.type==c.ETHERNET?h.NETWORK_LAN:c&&(c.type==c.CELL_2G||c.type==c.CELL_3G)?h.NETWORK_MOBILE:h.NETWORK_UNKNOWN},networkTypeName:function(){return!j?"NONE":c&&c.type==c.WIFI?"WIFI":c&&c.type==c.ETHERNET?"LAN":c&&(c.type==c.CELL_2G||c.type==c.CELL_3G)?"MOBILE":"UNKNOWN"},online:function(){return j}},properties:{httpURLFormatter:null},createHTTPClient:function(f){return new (require("Ti/Network/HTTPClient"))(f)},
decodeURIComponent:function(f){return decodeURIComponent(f)},encodeURIComponent:function(f){return encodeURIComponent(f)}});require.on(window,"online",function(f){j||(j=!0,h.fireEvent("change",{networkType:h.networkType,networkTypeName:h.networkTypeName,online:!0,source:f.target,type:f.type}))});require.on(window,"offline",function(f){j&&(j=!1,h.fireEvent("change",{networkType:h.networkType,networkTypeName:h.networkTypeName,online:!1,source:f.target,type:f.type}))})})},"Ti/_/browser":function(){define(["Ti/_"],
function(i){var k=navigator.userAgent.toLowerCase().match(/(webkit|gecko|trident|presto)/);return i.browser={runtime:k?k[0]:"unknown"}})},"Ti/_/Gestures/LongPress":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.LongPress",c,{name:"longpress",_timer:null,_touchStartLocation:null,_timeThreshold:500,_driftThreshold:25,processTouchStartEvent:function(c,h){clearTimeout(this._timer);1==c.touches.length&&1==c.changedTouches.length&&
(this._touchStartLocation={x:c.changedTouches[0].clientX,y:c.changedTouches[0].clientY},this._timer=setTimeout(k.hitch(this,function(){h._isGestureBlocked(this.name)||(this.blocking.push("singletap"),this.blocking.push("doubletap"),k.hitch(h,h._handleTouchEvent("longpress",{x:c.changedTouches[0].clientX,y:c.changedTouches[0].clientY})))}),this._timeThreshold))},processTouchEndEvent:function(c){0==c.touches.length&&1==c.changedTouches.length&&clearTimeout(this._timer)},finalizeTouchEndEvent:function(){this.blocking=
[]},processTouchMoveEvent:function(c){(!this._touchStartLocation||Math.abs(this._touchStartLocation.x-c.changedTouches[0].clientX)>this._driftThreshold||Math.abs(this._touchStartLocation.y-c.changedTouches[0].clientY)>this._driftThreshold)&&clearTimeout(this._timer)},processTouchCancelEvent:function(){clearTimeout(this._timer)}})})},"Ti/UI/TextArea":function(){define("Ti/_/declare,Ti/_/UI/TextBox,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/UI".split(","),function(i,k,c,j,h){return i("Ti.UI.TextArea",k,{domType:"textarea",
constructor:function(){h.set(this._field=this.domNode,{width:"100%",height:"100%"});this._initTextBox()},_defaultWidth:"auto",_defaultHeight:"auto",_getContentWidth:function(){return this._measureText(this.value,this.textArea).width},_getContentHeight:function(){return this._measureText(this.value,this.textArea).height},_setTouchEnabled:function(f){k.prototype._setTouchEnabled.apply(this,arguments);this.slider&&h.set(this.textArea,"pointerEvents",f?"auto":"none")}})})},"Ti/XML":function(){define("Ti/XML",
["Ti/_/Evented"],function(){(function(i){function k(){var e=[];Ti._5.prop(this,"length",{get:function(){return e.length}});this.item=function(b){return e[b]};this.add=function(b){e.push(b)};this.remove=function(b){for(var g=e.length;g--;)b==e[g]&&e.splice(g,1)}}function c(e){e.evaluate=function(b){tempXPathResult=f.parseFromString(h(e),"text/xml");var b=tempXPathResult.evaluate(b,tempXPathResult,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null),g=new k,a=null;if(b)for(;a=b.iterateNext();)g.add(j(a));
return g};return e}function j(e){e.nodeValue||(e.nodeValue=e);e.text||(e.text=e.nodeValue);return c(e)}function h(e){if("undefined"!=typeof e.outerHTML)return e.outerHTML;if("undefined"!=typeof XMLSerializer)return(new XMLSerializer).serializeToString(e);if(e.xml)return e.xml;var b=document.createElement("div");b.appendChild(e);return b.innerHTML}Ti._5.EventDriven(i);var f=new DOMParser;i.DOMDocument=null;i.parseString=function(e){domDocument=f.parseFromString(e.replace(/>\s*</gi,"><"),"text/xml");
var b=domDocument.firstChild||domDocument,b=c(b);b.documentElement=c(domDocument.documentElement);b.getElementsByTagName=function(g){return b.parentNode?b.parentNode.getElementsByTagName(g):b.getElementsByTagName(g)};return i.DOMDocument=b};i.serializeToString=function(e){if("array"!=typeof e&&"[object NodeList]"!==e.toString())return h(e);for(var b="",g=0;g<e.length;g++)b+=h(e[g]);return b}})(Ti._5.createClass("Ti.XML"))})},"Ti/UI/2DMatrix":function(){define(["Ti/_/declare","Ti/_/Evented","Ti/Platform",
"Ti/UI"],function(i,k,c,j){function h(b,g,a){var e=0==g?1:0,g=2==g?1:2,f=0==b?1:0,b=2==b?1:2;return a[f][e]*a[b][g]-a[f][g]*a[b][e]}function f(b,g,a,e,f,c,h,j){return{a:b.a*g+b.b*e,b:b.a*a+b.b*f,c:b.c*g+b.d*e,d:b.c*a+b.d*f,tx:b.a*c+b.b*h+b.tx,ty:b.c*c+b.d*h+b.ty,rotation:b.rotation+j}}var e="gecko"===c.runtime;return i("Ti.UI.2DMatrix",k,{properties:{a:1,b:0,c:0,d:1,tx:0,ty:0,rotation:0},constructor:function(b){b&&require.mix(this,b)},invert:function(){var b=0,g=0,a=[[this.a,this.b,this.tx],[this.c,
this.d,this.ty],[0,0,1]],e=this.a*h(0,0,a)-this.b*h(0,1,a)+this.tx*h(0,2,a);if(1.0E-10<Math.abs(e))for(e=1/e;3>g;g++)for(;3>b;b++)a[g][b]=h(b,g,a)*e,1==(b+g)%2&&(a[g][b]=-a[g][b]);return new j["2DMatrix"](f(this,a[0][0],a[0][1],a[1][0],a[1][1],a[0][2],a[1][2]))},multiply:function(b){return new j["2DMatrix"](f(this,b.a,b.b,b.c,b.d,b.tx,b.ty,b.rotation))},rotate:function(b){return new j["2DMatrix"]({a:this.a,b:this.b,c:this.c,d:this.d,tx:this.tx,ty:this.ty,rotation:this.rotation+b})},scale:function(b,
g){return new j["2DMatrix"](f(this,b,0,0,g,0,0))},translate:function(b,g){return new j["2DMatrix"](f(this,0,0,0,0,b,g))},toCSS:function(){for(var b=0,g=[this.a,this.b,this.c,this.d,this.tx,this.ty];6>b;b++)g[b]=g[b].toFixed(6),4<b&&(g[b]=e?g[b]+"px":g[b]);return"matrix("+g.join(",")+") rotate("+this.rotation+"deg)"}})})},Ti:function(){define("Ti/_,Ti/_/analytics,Ti/App,Ti/_/Evented,Ti/_/lang,Ti/_/ready,Ti/_/style,Ti/Platform,Ti/_/include".split(","),function(i,k,c,j,h,f,e,b){var g=window,a=require.config,
i=a.ti.version,r=require.is,y=require.each,u=require.has,w=h.setObject("Ti",j,{constants:{buildDate:a.ti.buildDate,buildHash:a.ti.buildHash,version:i},properties:{userAgent:"Appcelerator Titanium/"+i+" ("+navigator.userAgent+")!"},include:function(a){"array"===typeof a||(a=[].concat(Array.prototype.slice.call(arguments,0)));y(a,function(a){require("Ti/_/include!"+a)})}});u.add("devmode","development"===a.deployType);if(!u("object-defineproperty")){var l=Object.defineProperty;Object.defineProperty=
function(a,b,g){if(!a||!r(a,"Object")&&!r(a,"Function")&&!r(a,"Window"))throw new TypeError("Object.defineProperty called on non-object: "+a);g=g||{};if(!g||!r(g,"Object")&&!r(g,"Function"))throw new TypeError("Property description must be an object: "+g);if(l)try{return l.call(Object,a,b,g)}catch(e){}var f=Object.prototype,c=f.hasOwnProperty("__defineGetter__"),h=a.__proto__;if(g.hasOwnProperty("value"))c&&(a.__lookupGetter__(b)||a.__lookupSetter__(b))?(a.__proto__=f,delete a[b],a[b]=g.value,a.__proto__=
h):a[b]=g.value;else{if(!c)throw new TypeError("Getters and setters can not be defined on this javascript engine");g.hasOwnProperty("get")&&defineGetter(a,b,g.get);g.hasOwnProperty("set")?defineSetter(a,b,g.set):a[b]=null}}}void 0===console&&(console={});y(["debug","info","warn","error","log"],function(a){console[a]||(console[a]="log"in console?function(){var b=Array.apply({},arguments);b.unshift(a+":");console.log(b.join(" "))}:function(){})});if(!u("json-stringify")){var q=function(a){return('"'+
a.replace(/(["\\])/g,"\\$1")+'"').replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")};JSON.parse=function(a){return eval("("+a+")")};JSON.stringify=function(a,b,g){function e(a,f,c){var h,j;h=typeof a;var i=g?f+g:"";j=g?" ":"";var k=g?"\n":"",y=[];b&&(a=b(c,a));if("number"===h)return isFinite(a)?a+"":"null";if(r(h,"Boolean"))return a+"";if(null===a)return"null";if(r(a,"String"))return q(a);if(!("function"===h||"undefined"===h)){if(r(a.toJSON,
"Function"))return e(a.toJSON(c),f,c);if(a instanceof Date)return'"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z"'.replace(/\{(\w+)(\+)?\}/g,function(b,g,e){b=a["getUTC"+g]()+(e?1:0);return 10>b?"0"+b:b});if(a.valueOf()!==a)return e(a.valueOf(),f,c);if(a instanceof Array){for(c=0,j=a.length;c<j;c++)h=e(a[c],i,c),r(h,"String")||(h="null"),y.push(k+i+h);return"["+y.join(",")+k+f+"]"}for(c in a){var o;if(r(c,"Number"))o='"'+c+'"';else if(r(c,"String"))o=q(c);else continue;h=e(a[c],i,c);r(h,
"String")&&y.push(k+i+o+":"+j+h)}return"{"+y.join(",")+k+f+"}"}}r(b,"String")&&(g=b,b=null);return e(a,"","")}}Object.defineProperty(g,"Ti",{value:w,writable:!1});Object.defineProperty(g,"Titanium",{value:w,writable:!1});console.info("[INFO] Appcelerator Titanium "+i+" Mobile Web");a.vendorPrefixes||(a.vendorPrefixes=["","Moz","Webkit","O","ms"]);w.parse=JSON.parse;w.stringify=JSON.stringify;require.on(g,"beforeunload",function(){c.fireEvent("close");k.add("ti.end","ti.end")});f(function(){e.set(document.body,
{margin:0,padding:0});a.analytics&&(null===localStorage.getItem("mobileweb_enrollSent")&&(k.add("ti.enroll","ti.enroll",{mac_addr:null,oscpu:null,app_name:a.appName,platform:w.Platform.name,app_id:a.appId,ostype:w.Platform.osname,osarch:w.Platform.architecture,model:w.Platform.model,deploytype:a.deployType}),localStorage.setItem("mobileweb_enrollSent",!0)),k.add("ti.start","ti.start",{tz:(new Date).getTimezoneOffset(),deploytype:a.deployType,os:b.osname,osver:b.ostype,version:a.tiVersion,un:null,
app_version:a.appVersion,nettype:null}),k.send());f(function(){require([a.main||"app.js"])})});w._5={prop:function(a,b,g,e){if(r(b,"Object"))for(var f in b)w._5.prop(a,f,b[f]);else{var c;f=require("Ti/_/string").capitalize(b);if(3===arguments.length&&require.is(g,"Object")&&(g.get||g.set))e=g,c=1;e&&("value"in e&&(c=2,e.get||e.set?(g=e.value,delete e.value,void 0!==g&&(c=0)):e.writable=!0),e.configurable=!0,e.enumerable=!0,Object.defineProperty(a,b,e));a["get"+f]=function(){return a[b]};2>(c|0)&&
(a["set"+f]=function(g){return a[b]=g});c||(a[b]=g)}},propReadOnly:function(a,b,g){var e;if(require.is(b,"Object"))for(e in b)w._5.propReadOnly(a,e,b[e]);else w._5.prop(a,b,void 0,require.is(g,"Function")?{get:g,value:void 0}:{value:g})},createClass:function(a,b){var e,f=a.split("."),c,h=g;for(e=0;e<f.length;e++)c=f[e],void 0===h[c]&&(h[c]=e==f.length-1&&void 0!==b?b:{}),h=h[c];return h},EventDriven:function(a){var b=null;a.addEventListener=function(a,g){b||(b={});(b[a]=b[a]||[]).push(g)};a.removeEventListener=
function(a,g){if(b)if(g)for(var e=0,f=b[a],c=f&&f.length||0;e<c;e++)f[e]===g&&f.splice(e,1);else delete b[a]};a.hasListener=function(a){return b&&b[a]};a.fireEvent=function(g,e){if(b)for(var f=0,c=b[g],h=c&&c.length,j=require.mix({source:a,type:g},e);f<h;)c[f++].call(a,j)}}};return w})},"Ti/_/Gestures/GestureRecognizer":function(){define(["Ti/_/declare","Ti/_/lang"],function(i){return i("Ti._.Gestures.GestureRecognizer",null,{blocking:null,constructor:function(){this.blocking=[]},processTouchStartEvent:function(){},
finalizeTouchStartEvent:function(){},processTouchEndEvent:function(){},finalizeTouchEndEvent:function(){},processTouchMoveEvent:function(){},finalizeTouchMoveEvent:function(){},processTouchCancelEvent:function(){},finalizeTouchCancelEvent:function(){}})})},"Ti/UI/Slider":function(){define(["Ti/_/declare","Ti/_/UI/Widget","Ti/_/dom","Ti/_/css","Ti/_/style"],function(i,k,c,j,h){var f=h.set;return i("Ti.UI.Slider",k,{constructor:function(){this.slider=c.create("input",{className:j.clean("TiUISliderSlider")});
this.slider.type="range";this.domNode.appendChild(this.slider);f(this.slider,"width","100%");f(this.slider,"height","100%");this.slider.min=0;this.slider.max=100;this.slider.value=0},_defaultWidth:"100%",_defaultHeight:"auto",_getContentWidth:function(){return this.slider.clientWidth},_getContentHeight:function(){return this.slider.clientHeight},_setTouchEnabled:function(e){k.prototype._setTouchEnabled.apply(this,arguments);this.slider&&f(this.slider,"pointerEvents",e?"auto":"none")},properties:{disabledLeftTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.disabledLeftTrackImage" is not implemented yet.');
return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.disabledLeftTrackImage" is not implemented yet.');return e}},disabledRightTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.disabledRightTrackImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.disabledRightTrackImage" is not implemented yet.');return e}},disabledThumbImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.disabledThumbImage" is not implemented yet.');
return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.disabledThumbImage" is not implemented yet.');return e}},highlightedLeftTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.highlightedLeftTrackImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.highlightedLeftTrackImage" is not implemented yet.');return e}},highlightedRightTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.highlightedRightTrackImage" is not implemented yet.');
return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.highlightedRightTrackImage" is not implemented yet.');return e}},highlightedThumbImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.highlightedThumbImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.highlightedThumbImage" is not implemented yet.');return e}},leftTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.leftTrackImage" is not implemented yet.');
return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.leftTrackImage" is not implemented yet.');return e}},max:{get:function(){return this.slider.max},set:function(e){return this.slider.max=e}},min:{get:function(){return this.slider.min},set:function(e){return this.slider.min=e}},rightTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.rightTrackImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.rightTrackImage" is not implemented yet.');
return e}},selectedLeftTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.selectedLeftTrackImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.selectedLeftTrackImage" is not implemented yet.');return e}},selectedRightTrackImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.selectedRightTrackImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.selectedRightTrackImage" is not implemented yet.');
return e}},selectedThumbImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.selectedThumbImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.selectedThumbImage" is not implemented yet.');return e}},thumbImage:{get:function(e){console.debug('Property "Titanium.UI.Slider#.thumbImage" is not implemented yet.');return e},set:function(e){console.debug('Property "Titanium.UI.Slider#.thumbImage" is not implemented yet.');return e}},value:{get:function(){return this.slider.value},
set:function(e){return this.slider.value=e}}}})})},"Ti/_/Gestures/TouchStart":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.TouchStart",c,{name:"touchstart",processTouchStartEvent:function(c,h){if(!h._isGestureBlocked(this.name))for(var f=0;f<c.changedTouches.length;f++)k.hitch(h,h._handleTouchEvent(this.name,{x:c.changedTouches[f].clientX,y:c.changedTouches[f].clientY}))}})})},"Ti/UI/TableViewSection":function(){define("Ti/_/declare,Ti/_/lang,Ti/_/UI/Widget,Ti/_/style,Ti/UI/MobileWeb/TableViewSeparatorStyle,Ti/UI".split(","),
function(i,k,c,j,h,f){var e=require.is,b=j.set;return i("Ti.UI.TableViewSection",c,{constructor:function(){this._indexedContent=[];require.each(["_header","_rows","_footer"],k.hitch(this,function(b){c.prototype.add.call(this,this[b]=f.createView({height:"auto",layout:"vertical"}))}));this.layout="vertical"},_defaultHeight:"auto",_defaultWidth:"100%",_handleTouchEvent:function(b,a){if("click"===b||"singletap"===b)this._parent&&this._parent._parent&&(this._parent._parent._tableViewSectionClicked=this);
c.prototype._handleTouchEvent.apply(this,arguments)},_tableView:null,_createSeparator:function(){var b=this._tableView&&this._tableView.separatorStyle===h.SINGLE_LINE;return f.createView({height:b?1:0,width:"100%",backgroundColor:b?this._tableView.separatorColor:"transparent"})},_createDecorationLabel:function(b){return f.createLabel({text:b,backgroundColor:"darkGrey",color:"white",width:"100%",height:"auto",left:0,font:{fontSize:18}})},_refreshRows:function(){if(this._tableView){for(var e=this._rows.children,
a=this._tableView,f=1;f<e.length;f+=2){var c=e[f];c._defaultHeight=a.rowHeight;b(c.domNode,"minHeight",a.minRowHeight);b(c.domNode,"maxHeight",a.maxRowHeight)}for(f=0;f<e.length;f+=2)c=e[f],a.separatorStyle===h.SINGLE_LINE?(c.height=1,c.backgroundColor=a.separatorColor):(c.height=0,c.backgroundColor="transparent")}},_insertHelper:function(b,a){if(!k.isDef(b.declaredClass)||"Ti.UI.TableViewRow"!=b.declaredClass)b=f.createTableViewRow(b);this._rows._insertAt(b,2*a+1);this._rows._insertAt(this._createSeparator(),
2*a+2);b._tableViewSection=this;this.rowCount++},add:function(b,a){var f=this._rows.children,c=this.rowCount;k.isDef(a)||(a=c);if(!(0>a||a>c))if(0===f.length&&this._rows.add(this._createSeparator()),e(b,"Array"))for(var h in b)this._insertHelper(b[h],a++);else this._insertHelper(b,a)},_removeAt:function(b){0>b||b>=this.rowCount||(this._rows.children[2*b+1]._tableViewSection=null,this._rows.remove(this._rows.children[2*b+1]),this._rows.remove(this._rows.children[2*b+1]),1===this._rows.children.length&&
this._rows.remove(this._rows.children[0]))},remove:function(b){b=this._rows.children.indexOf(b);-1!==b&&this._removeAt(b)},properties:{footerTitle:{set:function(b,a){a!=b&&(this._footer._removeAllChildren(),this._footer.add(this._createDecorationLabel(b)),this._footer.add(this._createSeparator()));return b}},footerView:{set:function(b,a){a!=b&&(this._footer._removeAllChildren(),this._footer.add(b));return b}},headerTitle:{set:function(b,a){a!=b&&(this._header._removeAllChildren(),this._header.add(this._createDecorationLabel(b)),
this._header.add(this._createSeparator()));return b}},headerView:{set:function(b,a){a!=b&&(this._header._removeAllChildren(),this._header.add(b));return b}},rowCount:function(){return Math.floor(this._rows.children.length/2)}}})})},"Ti/UI/Switch":function(){define("Ti/_/declare,Ti/_/UI/FontWidget,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/_/lang,Ti/UI".split(","),function(i,k,c,j,h,f,e){var b=h.set,j={post:"_updateLook"};return i("Ti.UI.Switch",k,{domType:"button",constructor:function(){this._contentContainer=
c.create("div",{className:"TiUIButtonContentContainer",style:{display:["-webkit-box","-moz-box"],boxOrient:"vertical",boxPack:"center",boxAlign:"stretch",width:"100%",height:"100%"}},this.domNode);this._titleContainer=c.create("div",{className:"TiUIButtonTextAligner",style:{display:["-webkit-box","-moz-box"],boxOrient:"vertical",boxPack:"center",boxAlign:"center",boxFlex:1}},this._contentContainer);this._switchTitle=c.create("div",{className:"TiUISwitchTitle",style:{whiteSpace:"nowrap",pointerEvents:"none",
textAlign:"center"}},this._titleContainer);this._addStyleableDomNode(this._switchTitle);this._indicatorContainer=c.create("div",{className:"TiUIButtonTextAligner",style:{display:["-webkit-box","-moz-box"],boxPack:"center",boxAlign:"center",marginTop:"3px"}},this._contentContainer);this._switchIndicator=c.create("div",{className:"TiUISwitchIndicator",style:{padding:"4px 4px",borderRadius:"4px",border:"1px solid #888",pointerEvents:"none",width:"40px"}},this._indicatorContainer);this._switchIndicator.domNode+=
" TiUISwitchIndicator";this._disabledDimmer=c.create("div",{className:"TiUISwitchDisableDimmer",style:{pointerEvents:"none",opacity:0,backgroundColor:"white",width:"100%",height:"100%",position:"absolute",top:0,left:0}},this.domNode);this._setDefaultLook();this.domNode.addEventListener("click",f.hitch(this,function(){this.value=!this.value}));this.value=!1},_updateLook:function(){this.backgroundColor||this.backgroundDisabledColor||this.backgroundDisabledImage||this.backgroundFocusedColor||this.backgroundFocusedImage||
this.backgroundImage||this.backgroundSelectedColor||this.backgroundSelectedImage?this._clearDefaultLook():this._setDefaultLook();this._doBackground()},_setDefaultLook:function(){this._hasDefaultLook||(this._hasDefaultLook=!0,this.domNode.className+=" TiUIButtonDefault",b(this.domNode,"padding","6px 6px"),this._previousBorderWidth=this.borderWidth,this._previousBorderColor=this.borderColor,this.borderWidth=1,this.borderColor="#aaa")},_clearDefaultLook:function(){if(this._hasDefaultLook){this._hasDefaultLook=
!1;var e=this.domNode.className;this.domNode.className=e.substring(0,e.length-18);b(this.domNode,"padding",0);this.borderWidth=this._previousBorderWidth;this.borderColor=this._previousBorderColor;b(this._disabledDimmer,{opacity:0})}},_getContentWidth:function(){return Math.max(this._measureText(this._switchTitle.innerHTML,this._switchTitle).width,this._switchIndicator.offsetWidth)+(this._hasDefaultLook?12:0)},_getContentHeight:function(){return this._measureText(this._switchTitle.innerHTML,this._switchTitle).height+
this._switchIndicator.offsetHeight+3+(this._hasDefaultLook?12:0)},_defaultWidth:"auto",_defaultHeight:"auto",properties:{backgroundColor:j,backgroundDisabledColor:j,backgroundDisabledImage:j,backgroundFocusedColor:j,backgroundFocusedImage:j,backgroundImage:j,backgroundSelectedColor:j,backgroundSelectedImage:j,color:{set:function(e){b(this._switchTitle,"color",e);return e}},enabled:{set:function(e,a){e!==a&&(e?this._hasDefaultLook&&b(this._disabledDimmer,{opacity:0}):this._hasDefaultLook&&b(this._disabledDimmer,
{opacity:0.5}),this._setTouchEnabled(e));return e},value:!0},textAlign:{set:function(g){var a="";switch(g){case e.TEXT_VERTICAL_ALIGNMENT_TOP:a="start";break;case e.TEXT_VERTICAL_ALIGNMENT_CENTER:a="center";break;case e.TEXT_VERTICAL_ALIGNMENT_BOTTOM:a="end"}b(this._titleContainer,"boxAlign",a);return g}},titleOff:{set:function(b){this.value||(this._switchTitle.innerHTML=b,this._hasAutoDimensions()&&this._triggerParentLayout());return b},value:"Off"},titleOn:{set:function(b){this.value&&(this._switchTitle.innerHTML=
b,this._hasAutoDimensions()&&this._triggerParentLayout());return b},value:"On"},value:{set:function(e){b(this._switchIndicator,{backgroundColor:e?"#0f0":"#aaa"});this._switchTitle.innerHTML=e?this.titleOn:this.titleOff;this._hasAutoDimensions()&&this._triggerParentLayout();this.fireEvent("change",{value:!!e});return e}},verticalAlign:{set:function(g){var a="";switch(g){case e.TEXT_VERTICAL_ALIGNMENT_TOP:a="start";break;case e.TEXT_VERTICAL_ALIGNMENT_CENTER:a="center";break;case e.TEXT_VERTICAL_ALIGNMENT_BOTTOM:a=
"end"}b(this._titleContainer,"boxPack",a)},value:e.TEXT_VERTICAL_ALIGNMENT_CENTER}}})})},"Ti/UI/WebView":function(){define("Ti/_/declare,Ti/_/UI/Widget,Ti/_/dom,Ti/_/event,Ti/_/lang,Ti/_/text!Ti/_/UI/WebViewBridge.js,Ti/App,Ti/API".split(","),function(i,k,c,j,h,f,e,b){return i("Ti.UI.WebView",k,{constructor:function(){e.addEventListener(this.widgetId+":unload",h.hitch(this,function(){this._loading(1)}))},destroy:function(){e.removeEventListener(this.widgetId+":unload");this._destroy();k.prototype.destroy.apply(this,
arguments)},_destroy:function(){this._iframe&&(j.off(this._iframeHandles),c.destroy(this._iframe))},_createIFrame:function(){if(this._parent){this._destroy();this._loading(1);var e=this.url,a=this.url.match(/(https?)\:\/\/([^\:\/]*)(:?\d*)(.*)/),h=window.location,j=a&&a[0]+":"===h.protocol&&a[1]+a[2]===window.location.host,i=this._iframe=c.create("iframe",{frameborder:0,marginwidth:0,marginheight:0,hspace:0,vspace:0,scrolling:this.showScrollbars?"auto":"no",src:e,style:{width:"100%",height:"100%"}},
this.domNode);this._iframeHandles=[require.on(i,"load",this,function(){var a=Math.max(j|0,0),e=i.contentWindow,g,c;if(-1!==a)j=-1;else for(g in e){a++;break}0<a?(c=e.location.href,this.evalJS(f.replace("WEBVIEW_ID",this.widgetId+":unload"))):b.warn("Unable to inject WebView bridge into cross-domain URL, ignore browser security message");this._loading();this.fireEvent("load",{url:c?this.properties.__values__.url=c:this.url})}),require.on(i,"error",this,function(){this._loading();this.fireEvent("error",
{message:"Page failed to load",url:this.url})})]}},_setParent:function(b){k.prototype._setParent.apply(this,arguments);this.url&&this._createIFrame()},_getWindow:function(){return this._iframe.contentWindow},_getDoc:function(){return this._getWindow().document},_getHistory:function(){return this._getWindow().history},_loading:function(b){this.loading||b&&this.fireEvent("beforeload",{url:this.url});this.constants.loading=!!b},canGoBack:function(){return this.url&&this._getHistory().length},canGoForward:function(){return this.url&&
this._getHistory().length},evalJS:function(b){var a=this._getWindow();return b&&a&&a.eval&&a.eval(b)},goBack:function(){if(this.canGoBack()){var b=this._getHistory();b&&(this._loading(1),b.go(-1))}},goForward:function(){if(this.canGoForward()){var b=this._getHistory();b&&(this._loading(1),b.go(1))}},reload:function(){var b=this._getWindow();this.url&&b?b.location.href=this.url:this._createIFrame()},stopLoading:function(b){try{this.loading&&b?this._destroy():this._getWindow().stop()}catch(a){}this._loading()},
_defaultWidth:"100%",_defaultHeight:"100%",_getContentHeight:function(){return this._iframe?this._iframe.clientHeight:0},_getContentWidth:function(){return this._iframe?this._iframe.clientWidth:0},_setContent:function(b){try{this.properties.__values__.url="";this._createIFrame();var a=this._getDoc();a.open();a.write(b);a.close()}catch(e){}return b},properties:{data:{set:function(b){return this._setContent(b)}},html:{set:function(b){return this._setContent(b)}},showScrollbars:{set:function(b){this._iframe&&
c.attr.set(this._iframe,"scrolling",b?"auto":"no");return b},value:!0},url:{post:function(){this._createIFrame()}}},constants:{loading:!1}})})},"Ti/_/UI/SuperView":function(){define(["Ti/_/declare","Ti/_/dom","Ti/_/lang","Ti/UI","Ti/UI/View"],function(i,k,c,j,h){var f=[],e=Math.random(),b=(window.history||{}).pushState;b&&require.on(window,"popstate",function(b){var a=f.length,c=a&&f[a-1],h;if(b&&b.state&&b.state.sessId===e&&(h=b.state.id)&&1<a&&f[a-2].widgetId===h)c.close(),j._setWindow(c=f[f.length-
1]),c.fireEvent("focus",c._state)});return i("Ti._.UI.SuperView",h,{constructor:function(){this.addEventListener("focus",c.hitch(this,function(){this.setWindowTitle(this.title)}))},destroy:function(){this.close();h.prototype.destroy.apply(this,arguments)},open:function(){var c=f.length,a=c&&f[c-1];this._opened||(this._opened=1,j._addWindow(this,1).show(),a&&a.fireEvent("blur",a._state),b&&history[a?"pushState":"replaceState"]({id:this.widgetId,sessId:e},"",""),f.push(this),this._stackIdx=c,this.fireEvent("open"),
this.fireEvent("focus",this._state))},close:function(){this._opened&&(this._opened=0,j._removeWindow(this),null!==this._stackIdx&&this._stackIdx<f.length&&f.splice(this._stackIdx,1),this._stackIdx=null,j._setWindow(f[f.length-1]),this.fireEvent("blur",this._state),this.fireEvent("close"))},setWindowTitle:function(b){f[f.length-1]===this&&(document.title=b||require.config.project.name);return b}})})},"Ti/Platform/DisplayCaps":function(){define(["Ti/_","Ti/_/Evented","Ti/_/lang"],function(i,k,c){var j=
navigator.userAgent.toLowerCase(),i=c.setObject("Ti.Platform.DisplayCaps",k,{constants:{density:function(){switch(j){case "iphone":return"medium";case "ipad":return"medium";default:return""}},dpi:i.dpi,platformHeight:window.innerHeight,platformWidth:window.innerWidth}});return Ti.Platform.displayCaps=i})},"Ti/UI/ImageView":function(){define("Ti/_/declare,Ti/_/UI/Widget,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/_/lang".split(","),function(i,k,c,j,h,f){var e=h.set;return i("Ti.UI.ImageView",k,{constructor:function(){this.contentContainer=
c.create("div",{className:j.clean("TiUIImageViewAligner")});e(this.contentContainer,"width","100%");e(this.contentContainer,"height","100%");e(this.contentContainer,"display","-webkit-box");e(this.contentContainer,"display","-moz-box");e(this.contentContainer,"boxOrient","horizontal");e(this.contentContainer,"boxPack","center");e(this.contentContainer,"boxAlign","center");this.domNode.appendChild(this.contentContainer);this.imageDisplay=c.create("img",{className:j.clean("TiUIImageViewDisplay")});
this.imageDisplay.ondragstart=function(){return!1};this.contentContainer.appendChild(this.imageDisplay);e(this.imageDisplay,"width","100%");e(this.imageDisplay,"height","100%")},pause:function(){console.debug('Method "Titanium.UI.ImageView#.pause" is not implemented yet.')},start:function(){console.debug('Method "Titanium.UI.ImageView#.start" is not implemented yet.')},stop:function(){console.debug('Method "Titanium.UI.ImageView#.stop" is not implemented yet.')},toBlob:function(){console.debug('Method "Titanium.UI.ImageView#.toBlob" is not implemented yet.')},
_doLayout:function(){k.prototype._doLayout.apply(this,arguments);if(this.canScale){var b=this._measuredWidth/this._measuredHeight,c=this._getContentWidth()/this._getContentHeight();b>c?(e(this.imageDisplay,"width","auto"),e(this.imageDisplay,"height","100%")):(e(this.imageDisplay,"width","100%"),e(this.imageDisplay,"height","auto"))}else e(this.imageDisplay,"width","auto"),e(this.imageDisplay,"height","auto")},_defaultWidth:"auto",_defaultHeight:"auto",_getContentWidth:function(){return this.imageDisplay.width},
_getContentHeight:function(){return this.imageDisplay.height},_setTouchEnabled:function(b){k.prototype._setTouchEnabled.apply(this,arguments);var c=b?"auto":"none";this.contentContainer&&e(this.contentContainer,"pointerEvents",c);this.imageDisplay&&e(this.imageDisplay,"pointerEvents",c)},properties:{animating:!1,canScale:{set:function(b,e){b!==e&&this._hasAutoDimensions()&&this._triggerLayout();return b},value:!0},defaultImage:null,duration:0,image:{set:function(b){this.defaultImage&&(this.imageDisplay.src=
b);var e=new Image;require.on(e,"load",f.hitch(this,function(){this.imageDisplay.src=b;this._hasAutoDimensions()&&this._triggerLayout()}));return e.src=b}},images:{get:function(b){console.debug('Property "Titanium.UI.ImageView#.images" is not implemented yet.');return b},set:function(b){console.debug('Property "Titanium.UI.ImageView#.images" is not implemented yet.');return b}},paused:!1,preventDefaultImage:{get:function(b){console.debug('Property "Titanium.UI.ImageView#.preventDefaultImage" is not implemented yet.');
return b},set:function(b){console.debug('Property "Titanium.UI.ImageView#.preventDefaultImage" is not implemented yet.');return b}},repeatCount:{get:function(b){console.debug('Property "Titanium.UI.ImageView#.repeatCount" is not implemented yet.');return b},set:function(b){console.debug('Property "Titanium.UI.ImageView#.repeatCount" is not implemented yet.');return b}},reverse:{get:function(b){console.debug('Property "Titanium.UI.ImageView#.reverse" is not implemented yet.');return b},set:function(b){console.debug('Property "Titanium.UI.ImageView#.reverse" is not implemented yet.');
return b}}}})})},"Ti/UI/Animation":function(){define(["Ti/_/declare","Ti/_/Evented"],function(i,k){return i("Ti.UI.Animation",k,{start:function(){this.fireEvent("start")},complete:function(){this.fireEvent("complete")},properties:{autoreverse:void 0,backgroundColor:void 0,bottom:void 0,center:void 0,color:void 0,curve:void 0,delay:void 0,duration:void 0,height:void 0,left:void 0,opacity:void 0,repeat:void 0,right:void 0,top:void 0,transform:void 0,visible:void 0,width:void 0,zIndex:void 0}})})},"Ti/_":function(){define(["Ti/_/lang"],
function(i){var k=document.body,c=document.createElement("div"),j;c.style.width="1in";c.style.visibility="hidden";k.appendChild(c);j=parseInt(c.clientWidth);k.removeChild(c);return i.setObject("Ti._",{assert:function(c,f){if(!c)throw Error(f);},dpi:j,escapeHtmlEntities:function(c){return(""+c).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},getAbsolutePath:function(c){/^app\:\/\//.test(c)&&(c=c.substring(6));/^\//.test(c)&&(c=c.substring(1));return/^\/\//.test(c)||
0<c.indexOf("://")?c:location.pathname.replace(/(.*)\/.*/,"$1")+"/"+c},uuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var f=16*Math.random()|0;return("x"==c?f:f&3|8).toString(16)}).toUpperCase()}})})},"Ti/UI/View":function(){define("Ti/_/declare,Ti/_/dom,Ti/_/UI/Element,Ti/_/lang,Ti/_/string,Ti/_/Layouts,Ti/_/style".split(","),function(i,k,c,j,h,f,e){var b=k.unitize,g=e.set,a;return a=i("Ti.UI.View",c,{_parent:null,constructor:function(){this.children=[];
this.layout="absolute";this.containerNode=this.domNode},add:function(a){a._setParent(this);this.children.push(a);this.containerNode.appendChild(a.domNode);this._triggerLayout()},_setParent:function(a){this._parent=a},_insertAt:function(a,b){b>this.children.length||0>b||(b===this.children.length?this.add(a):(a._parent=this,this.containerNode.insertBefore(a.domNode,this.children[b].domNode),this.children.splice(b,0,a),this._triggerLayout()))},remove:function(a){var b=this.children.indexOf(a);-1!==b&&
(this.children.splice(b,1),a._setParent(),k.detach(a.domNode),this._triggerLayout())},destroy:function(){if(this.children){for(var b;this.children.length;)b=this.children.splice(0,1),b[0].destroy();this._parent&&a.prototype.remove.call(this._parent,this)}c.prototype.destroy.apply(this,arguments)},_removeAllChildren:function(){for(var a=this.children;a.length;)this.remove(a[0]);this._triggerLayout()},_getScrollableContentWidth:function(){return 600},_getScrollablePosition:function(){return{x:0,y:0}},
_createHorizontalScrollBar:function(){this._horizontalScrollBar=k.create("div",{className:"TiUIScrollBar",style:{position:"absolute",zIndex:2147483647,border:"3px solid #555",borderRadius:"3px",height:"0px",bottom:"0px",opacity:0}},this.domNode)},_destroyHorizontalScrollBar:function(){this._cancelPreviousAnimation();k.destroy(this._horizontalScrollBar)},_createVerticalScrollBar:function(){this._verticalScrollBar=k.create("div",{className:"TiUIScrollBar",style:{position:"absolute",zIndex:2147483647,
border:"3px solid #555",borderRadius:"3px",width:"0px",right:"0px",opacity:0}},this.domNode)},_destroyVerticalScrollBar:function(){this._cancelPreviousAnimation();k.destroy(this._verticalScrollBar)},_cancelPreviousAnimation:function(){this._isScrollBarActive&&(g(this._horizontalScrollBar,"transition",""),g(this._verticalScrollBar,"transition",""),clearTimeout(this._horizontalScrollBarTimer),clearTimeout(this._verticalScrollBarTimer))},_startScrollBars:function(a,e){this._cancelPreviousAnimation();
if(this._horizontalScrollBar&&1>e.x&&0<e.x){var c=a.x,f=this._measuredWidth;0>c&&(c=0);1<c&&(c=1);this._horizontalScrollBarWidth=(f-6)*e.x;10>this._horizontalScrollBarWidth&&(this._horizontalScrollBarWidth=10);g(this._horizontalScrollBar,{opacity:0.5,left:b(c*(f-this._horizontalScrollBarWidth-6)),width:b(this._horizontalScrollBarWidth)});this._isScrollBarActive=!0}this._verticalScrollBar&&1>e.y&&0<e.y&&(c=a.y,f=this._measuredHeight,0>c&&(c=0),1<c&&(c=1),this._verticalScrollBarHeight=(f-6)*e.y,10>
this._verticalScrollBarHeight&&(this._verticalScrollBarHeight=10),g(this._verticalScrollBar,{opacity:0.5,top:b(c*(f-this._verticalScrollBarHeight-6)),height:b(this._verticalScrollBarHeight)}),this._isScrollBarActive=!0)},_updateScrollBars:function(a){if(this._isScrollBarActive){if(this._horizontalScrollBar){var e=a.x,c=this._measuredWidth;0>e&&(e=0);1<e&&(e=1);g(this._horizontalScrollBar,"left",b(e*(c-this._horizontalScrollBarWidth-6)))}this._verticalScrollBar&&(a=a.y,e=this._measuredHeight,0>a&&
(a=0),1<a&&(a=1),g(this._verticalScrollBar,"top",b(a*(e-this._verticalScrollBarHeight-6))))}},_endScrollBars:function(){if(this._isScrollBarActive){var a=this;if(this._horizontalScrollBar){var b=this._horizontalScrollBar;b&&(g(b,"transition","all 1s ease-in-out"),setTimeout(function(){g(b,"opacity",0);a._horizontalScrollBarTimer=setTimeout(function(){a._isScrollBarActive=!1;g(b,"transition","")},500)},0))}if(this._verticalScrollBar){var e=this._verticalScrollBar;e&&(g(e,"transition","all 1s ease-in-out"),
setTimeout(function(){g(e,"opacity",0);a._verticalScrollBarTimer=setTimeout(function(){a._isScrollBarActive=!1;g(e,"transition","")},500)},0))}}},_defaultWidth:"100%",_defaultHeight:"100%",properties:{layout:{set:function(a){a=(a=a.toLowerCase().match(/^(horizontal|vertical)$/))?a[0]:"absolute";this._layout&&(this._layout.destroy(),this._layout=null);this._layout=new (f[h.capitalize(a)])(this);return a}}}})})},"Ti/_/Evented":function(){define(function(){return{destroy:function(){for(var i in this)this.hasOwnProperty(i)&&
delete this[i]},addEventListener:function(i,k){this.listeners||(this.listeners={});(this.listeners[i]=this.listeners[i]||[]).push(k)},removeEventListener:function(i,k){if(this.listeners)if(k)for(var c=0,j=this.listeners[i],h=j&&j.length||0;c<h;c++)j[c]===k&&j.splice(c,1);else delete this.listeners[i]},fireEvent:function(i,k){for(var c=0,j=this.listeners&&this.listeners[i],h=j&&j.length,f=require.mix({source:this,type:i},k);c<h;)j[c++].call(this,f)}}})},"Ti/_/include":function(){define(function(){var i=
{},k=[];return{dynamic:!0,normalize:function(c,j){var h=c.split("!"),f=h[0];h.shift();return(/^\./.test(f)?j(f):f)+(h.length?"!"+h.join("!"):"")},load:function(c,j,h){var f;f=c.split("!");var e;if(e=1<f.length&&"sandbox"===f[0])f.shift(),c=f.join("!");c=j.toUrl(/^\//.test(c)?c:"./"+c,k.length?{name:k[k.length-1]}:null);f=i[c]||j.cache(c);if(!f)if(f=new XMLHttpRequest,f.open("GET",c,!1),f.send(null),200===f.status)f=f.responseText;else throw Error('Failed to load include "'+c+'": '+f.status);k.push(c);
try{j.evaluate(i[c]=f,0,!e)}catch(b){throw b;}finally{k.pop()}h(f)}}})},"Ti/_/Gestures/SingleTap":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.SingleTap",c,{name:"singletap",_touchStartLocation:null,_driftThreshold:25,processTouchStartEvent:function(c){1==c.touches.length&&1==c.changedTouches.length&&(this._touchStartLocation={x:c.changedTouches[0].clientX,y:c.changedTouches[0].clientY})},processTouchEndEvent:function(c,h){if(0==
c.touches.length&&1==c.changedTouches.length&&this._touchStartLocation){var f=c.changedTouches[0].clientX,e=c.changedTouches[0].clientY;Math.abs(this._touchStartLocation.x-f)<this._driftThreshold&&Math.abs(this._touchStartLocation.y-e)<this._driftThreshold&&(this._touchStartLocation=null,f={x:f,y:e},h._isGestureBlocked(this.name)||(k.hitch(h,h._handleTouchEvent("click",f)),k.hitch(h,h._handleTouchEvent(this.name,f))))}},processTouchCancelEvent:function(){this._touchStartLocation=null}})})},"Ti/_/string":function(){define(["Ti/_",
"Ti/_/lang"],function(i,k){function c(a,b,c){var f=b-10;for(e(a.arg,"String")||(a.arg=""+a.arg);a.arg.length<f;)a.arg=a.rightJustify?a.arg+c:c+a.arg;b-=a.arg.length;a.arg=a.rightJustify?a.arg+c.substring(0,b):c.substring(0,b)+a.arg}function j(a,b){c(a,k.val(b,a.precision),g)}var h=i.assert,f=require.has,e=require.is,b=require.mix,g="0000000000",a={b:{base:2,isInt:1},o:{base:8,isInt:1},x:{base:16,isInt:1},X:{extend:["x"],toUpper:1},d:{base:10,isInt:1},i:{extend:["d"]},u:{extend:["d"],isUnsigned:1},
c:{setArg:function(a){if(!isNaN(a.arg)){var b=parseInt(a.arg);h(0>b||127<b,"Invalid character code passed to %c in sprintf");a.arg=isNaN(b)?""+b:String.fromCharCode(b)}}},s:{setMaxWidth:function(a){a.maxWidth="."===a.period?a.precision:-1}},e:{isDouble:1},E:{extend:["e"],toUpper:1},f:{isDouble:1},F:{extend:["f"]},g:{isDouble:1},G:{extend:["g"],toUpper:1}};String.format=function(g){for(var i=k.toArray(arguments),u=/\%(?:\(([\w_]+)\)|([1-9]\d*)\$)?([0 +\-\#]*)(\*|\d+)?(\.)?(\*|\d+)?[hlL]?([\%scdeEfFgGiouxX])/g,
w=[],l,q=0,o,p,v=p=0,s="",x="mapping,intmapping,flags,_minWidth,period,_precision,specifier".split(",");o=u.exec(g);){p=g.slice(p,u.lastIndex-o[0].length);p.length&&w.push(p);if(f("opera")){for(p=o.slice(0);p.length<o.length;)p.push(null);o=p}l={};o.slice(1).concat(w.length).map(function(a,b){x[b]&&(l[x[b]]=a)});w.push(l);l[0]&&q++;p=u.lastIndex}p=g.slice(p);p.length&&w.push(p);i.shift();h(!q||i.length,"Format has no mapped arguments");require.each(w,function(n){var l,o={},u,p,w=a[n.specifier];if(e(n,
"String"))s+=n;else{q?h(void 0===i[n.mapping],"Missing key "+n.mapping):(n.intmapping&&(v=parseInt(n.intmapping)-1),h(v<i.length,"Got "+i.length+" format arguments, insufficient for '"+g+"'"));n.arg=i[q?n.mapping:v++];if(!n.compiled){b(n,{compiled:1,sign:"",zeroPad:0,rightJustify:0,alternative:0,minWidth:n._minWidth|0,maxWidth:-1,toUpper:0,isUnsigned:0,isInt:0,isDouble:0,precision:"."===n.period?n._precision|0:1});for(l=n.flags,u=l.length;u--;)switch(o[p=l.charAt(u)]=1,p){case " ":n.sign=" ";break;
case "+":n.sign="+";break;case "0":n.zeroPad=!o["-"];break;case "-":n.rightJustify=1;n.zeroPad=0;break;case "#":n.alternative=1;break;default:throw Error("Bad formatting flag '"+p+"'");}h(void 0!==w,"Unexpected specifier '"+n.specifier+"'");w.extend&&(b(w,a[w.extend]),delete w.extend);b(n,w)}e(n.setArg,"Function")&&n.setArg(n);e(n.setMaxWidth,"Function")&&n.setMaxWidth(n);"*"===n._minWidth&&(h(q,"* width not supported in mapped formats"),h(isNaN(n.minWidth=parseInt(i[v++])),"The argument for * width at position "+
v+" is not a number in "+this._format),0>n.minWidth&&(n.rightJustify=1,n.minWidth=-n.minWidth));"*"===n._precision&&"."===n.period&&(h(q,"* precision not supported in mapped formats"),h(isNaN(n.precision=parseInt(i[v++])),"The argument for * precision at position "+v+" is not a number in "+this._format),0>n.precision&&(n.precision=1,n.period=""));if(n.isInt)"."===n.period&&(n.zeroPad=0),l=parseInt(n.arg),isFinite(l)||(h(!e(n.arg,"Number"),"Format argument '"+n.arg+"' not an integer; parseInt returned "+
l),l=0),0>l&&(n.isUnsigned||10!=n.base)&&(l=4294967295+l+1),0>l?(n.arg=(-l).toString(n.base),j(n),n.arg="-"+n.arg):(n.arg=l.toString(n.base),l||n.precision?j(n):n.arg="",n.sign&&(n.arg=n.sign+n.arg)),16===n.base&&(n.alternative&&(n.arg="0x"+n.arg),n.arg=n.toUpper?n.arg.toUpperCase():n.arg.toLowerCase()),8===n.base&&n.alternative&&"0"!=n.arg.charAt(0)&&(n.arg="0"+n.arg);else if(n.isDouble){"."!==n.period&&(n.precision=6);l=parseFloat(n.arg);isFinite(l)||(h(!e(n.arg,"Number"),"Format argument '"+n.arg+
"' not a float; parseFloat returned "+l),l=0);switch(n.specifier){case "e":n.arg=l.toExponential(n.precision);break;case "f":n.arg=l.toFixed(n.precision);break;case "g":n.arg=1.0E-4>Math.abs(l)?l.toExponential(0<n.precision?n.precision-1:n.precision):l.toPrecision(n.precision);n.alternative||(n.arg=n.arg.replace(/(\..*[^0])0*/,"$1"),n.arg=n.arg.replace(/\.0*e/,"e").replace(/\.0$/,""));break;default:throw Error("Unexpected double notation '"+n.doubleNotation+"'");}n.arg=n.arg.replace(/e\+(\d)$/,"e+0$1").replace(/e\-(\d)$/,
"e-0$1");f("opera")&&(n.arg=n.arg.replace(/^\./,"0."));n.alternative&&(n.arg=n.arg.replace(/^(\d+)$/,"$1."),n.arg=n.arg.replace(/^(\d+)e/,"$1.e"));0<=l&&n.sign&&(n.arg=n.sign+n.arg);n.arg=n.toUpper?n.arg.toUpperCase():n.arg.toLowerCase()}0<=n.maxWidth&&n.arg.length>n.maxWidth?n.arg.substring(0,n.maxWidth):n.zeroPad?j(n,n.minWidth):c(n,k.val(void 0,n.minWidth),"          ");s+=""+n.arg}});return s};return{capitalize:function(a){a=a||"";return a.substring(0,1).toUpperCase()+a.substring(1)},trim:String.prototype.trim?
function(a){return a.trim()}:function(a){return a.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}}})},"Ti/Utils":function(){define("Ti/Utils",["Ti/_/Evented"],function(){(function(i){function k(c){for(var c=c.replace(/\r\n/g,"\n"),j="",h=0;h<c.length;h++){var f=c.charCodeAt(h);128>f?j+=String.fromCharCode(f):(127<f&&2048>f?j+=String.fromCharCode(f>>6|192):(j+=String.fromCharCode(f>>12|224),j+=String.fromCharCode(f>>6&63|128)),j+=String.fromCharCode(f&63|128))}return j}Ti._5.EventDriven(i);i.base64decode=
function(c){for(var j="",h,f,e,b,g,a=0,c=c.replace(/[^A-Za-z0-9\+\/\=]/g,"");a<c.length;)h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)),g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)),h=h<<2|f>>4,f=(f&15)<<4|b>>2,e=(b&3)<<6|
g,j+=String.fromCharCode(h),64!=b&&(j+=String.fromCharCode(f)),64!=g&&(j+=String.fromCharCode(e));c=j;j="";for(g=c1=c2=b=0;b<c.length;)g=c.charCodeAt(b),128>g?(j+=String.fromCharCode(g),b++):191<g&&224>g?(c2=c.charCodeAt(b+1),j+=String.fromCharCode((g&31)<<6|c2&63),b+=2):(c2=c.charCodeAt(b+1),c3=c.charCodeAt(b+2),j+=String.fromCharCode((g&15)<<12|(c2&63)<<6|c3&63),b+=3);return j};i.base64encode=function(c){for(var j="",h,f,e,b,g,a,i=0,c=k(c);i<c.length;)h=c.charCodeAt(i++),f=c.charCodeAt(i++),e=c.charCodeAt(i++),
b=h>>2,h=(h&3)<<4|f>>4,g=(f&15)<<2|e>>6,a=e&63,isNaN(f)?g=a=64:isNaN(e)&&(a=64),j=j+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(b)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(g)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(a);return j};i.md5HexDigest=function(c){var j=function(a,b){var e,c,f,g,h;f=a&2147483648;g=b&2147483648;e=a&
1073741824;c=b&1073741824;h=(a&1073741823)+(b&1073741823);return e&c?h^2147483648^f^g:e|c?h&1073741824?h^3221225472^f^g:h^1073741824^f^g:h^f^g},h=function(a,b,e,c,f,g,h){a=j(a,j(j(b&e|~b&c,f),h));return j(a<<g|a>>>32-g,b)},f=function(a,b,e,c,f,g,h){a=j(a,j(j(b&c|e&~c,f),h));return j(a<<g|a>>>32-g,b)},e=function(a,b,e,c,f,g,h){a=j(a,j(j(b^e^c,f),h));return j(a<<g|a>>>32-g,b)},b=function(a,b,e,c,f,g,h){a=j(a,j(j(e^(b|~c),f),h));return j(a<<g|a>>>32-g,b)},g=function(a){var b="",e="",c;for(c=0;3>=c;c++)e=
a>>>8*c&255,e="0"+e.toString(16),b+=e.substr(e.length-2,2);return b},a=[],i,y,u,w,l,q,o,p;str=k(c);a=function(a){var b,e=a.length;b=e+8;for(var c=16*((b-b%64)/64+1),f=Array(c-1),g=0,h=0;h<e;)b=(h-h%4)/4,g=8*(h%4),f[b]|=a.charCodeAt(h)<<g,h++;b=(h-h%4)/4;f[b]|=128<<8*(h%4);f[c-2]=e<<3;f[c-1]=e>>>29;return f}(str);l=1732584193;q=4023233417;o=2562383102;p=271733878;for(c=0;c<a.length;c+=16)i=l,y=q,u=o,w=p,l=h(l,q,o,p,a[c+0],7,3614090360),p=h(p,l,q,o,a[c+1],12,3905402710),o=h(o,p,l,q,a[c+2],17,606105819),
q=h(q,o,p,l,a[c+3],22,3250441966),l=h(l,q,o,p,a[c+4],7,4118548399),p=h(p,l,q,o,a[c+5],12,1200080426),o=h(o,p,l,q,a[c+6],17,2821735955),q=h(q,o,p,l,a[c+7],22,4249261313),l=h(l,q,o,p,a[c+8],7,1770035416),p=h(p,l,q,o,a[c+9],12,2336552879),o=h(o,p,l,q,a[c+10],17,4294925233),q=h(q,o,p,l,a[c+11],22,2304563134),l=h(l,q,o,p,a[c+12],7,1804603682),p=h(p,l,q,o,a[c+13],12,4254626195),o=h(o,p,l,q,a[c+14],17,2792965006),q=h(q,o,p,l,a[c+15],22,1236535329),l=f(l,q,o,p,a[c+1],5,4129170786),p=f(p,l,q,o,a[c+6],9,3225465664),
o=f(o,p,l,q,a[c+11],14,643717713),q=f(q,o,p,l,a[c+0],20,3921069994),l=f(l,q,o,p,a[c+5],5,3593408605),p=f(p,l,q,o,a[c+10],9,38016083),o=f(o,p,l,q,a[c+15],14,3634488961),q=f(q,o,p,l,a[c+4],20,3889429448),l=f(l,q,o,p,a[c+9],5,568446438),p=f(p,l,q,o,a[c+14],9,3275163606),o=f(o,p,l,q,a[c+3],14,4107603335),q=f(q,o,p,l,a[c+8],20,1163531501),l=f(l,q,o,p,a[c+13],5,2850285829),p=f(p,l,q,o,a[c+2],9,4243563512),o=f(o,p,l,q,a[c+7],14,1735328473),q=f(q,o,p,l,a[c+12],20,2368359562),l=e(l,q,o,p,a[c+5],4,4294588738),
p=e(p,l,q,o,a[c+8],11,2272392833),o=e(o,p,l,q,a[c+11],16,1839030562),q=e(q,o,p,l,a[c+14],23,4259657740),l=e(l,q,o,p,a[c+1],4,2763975236),p=e(p,l,q,o,a[c+4],11,1272893353),o=e(o,p,l,q,a[c+7],16,4139469664),q=e(q,o,p,l,a[c+10],23,3200236656),l=e(l,q,o,p,a[c+13],4,681279174),p=e(p,l,q,o,a[c+0],11,3936430074),o=e(o,p,l,q,a[c+3],16,3572445317),q=e(q,o,p,l,a[c+6],23,76029189),l=e(l,q,o,p,a[c+9],4,3654602809),p=e(p,l,q,o,a[c+12],11,3873151461),o=e(o,p,l,q,a[c+15],16,530742520),q=e(q,o,p,l,a[c+2],23,3299628645),
l=b(l,q,o,p,a[c+0],6,4096336452),p=b(p,l,q,o,a[c+7],10,1126891415),o=b(o,p,l,q,a[c+14],15,2878612391),q=b(q,o,p,l,a[c+5],21,4237533241),l=b(l,q,o,p,a[c+12],6,1700485571),p=b(p,l,q,o,a[c+3],10,2399980690),o=b(o,p,l,q,a[c+10],15,4293915773),q=b(q,o,p,l,a[c+1],21,2240044497),l=b(l,q,o,p,a[c+8],6,1873313359),p=b(p,l,q,o,a[c+15],10,4264355552),o=b(o,p,l,q,a[c+6],15,2734768916),q=b(q,o,p,l,a[c+13],21,1309151649),l=b(l,q,o,p,a[c+4],6,4149444226),p=b(p,l,q,o,a[c+11],10,3174756917),o=b(o,p,l,q,a[c+2],15,718787259),
q=b(q,o,p,l,a[c+9],21,3951481745),l=j(l,i),q=j(q,y),o=j(o,u),p=j(p,w);return(g(l)+g(q)+g(o)+g(p)).toLowerCase()}})(Ti._5.createClass("Ti.Utils"))})},"Ti/UI/OptionDialog":function(){define(["Ti/_/declare","Ti/_/Evented","Ti/UI"],function(i,k,c){return i("Ti.UI.OptionDialog",k,{show:function(){function j(a,f,g){a=c.createButton({left:5,right:5,top:5,bottom:g,height:"auto",title:a,index:f});f===b.destructive?a.domNode.className+=" TiUIButtonDestructive":f===b.cancel&&(a.domNode.className+=" TiUIButtonCancel");
e.add(a);a.addEventListener("singletap",function(){h.close();b._optionsWindow=void 0;b.fireEvent("click",{index:f,cancel:b.cancel,destructive:b.destructive})})}var h=this._optionsWindow=c.createWindow(),f=c.createView({backgroundColor:"black",opacity:0,left:0,top:0,right:0,bottom:0});h.add(f);var e=c.createView({width:"100%",height:"auto",bottom:0,backgroundColor:"white",layout:"vertical",opacity:0});h.add(e);e.add(c.createLabel({text:this.title,font:{fontWeight:"bold"},left:5,right:5,top:5,height:"auto",
textAlign:c.TEXT_ALIGNMENT_CENTER}));var b=this,g=this.options,a=0;if(require.is(g,"Array"))for(;a<g.length;a++)j(g[a],a,a===g.length-1?5:0);h.open();setTimeout(function(){e.animate({bottom:-e._measuredHeight,opacity:1,duration:0});f.animate({opacity:0.5,duration:150},function(){setTimeout(function(){e.animate({bottom:0,duration:150})},0)})},30)},properties:{cancel:-1,destructive:-1,options:void 0,title:"",titleid:{get:function(c){console.debug('Property "Titanium.UI.optionsDialog#.titleid" is not implemented yet.');
return c},set:function(c){console.debug('Property "Titanium.UI.optionsDialog#.titleid" is not implemented yet.');return c}}}})})},"Ti/_/Gestures/TouchMove":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.TouchMove",c,{name:"touchmove",processTouchMoveEvent:function(c,h){if(!h._isGestureBlocked(this.name))for(var f=0;f<c.changedTouches.length;f++)k.hitch(h,h._handleTouchEvent(this.name,{x:c.changedTouches[f].clientX,y:c.changedTouches[f].clientY}))}})})},
"Ti/_/UI/Element":function(){define("Ti/_/browser,Ti/_/css,Ti/_/declare,Ti/_/dom,Ti/_/event,Ti/_/lang,Ti/_/style,Ti/_/Evented,Ti/UI,Ti/_/Gestures/DoubleTap,Ti/_/Gestures/LongPress,Ti/_/Gestures/Pinch,Ti/_/Gestures/SingleTap,Ti/_/Gestures/Swipe,Ti/_/Gestures/TouchCancel,Ti/_/Gestures/TouchEnd,Ti/_/Gestures/TouchMove,Ti/_/Gestures/TouchStart,Ti/_/Gestures/TwoFingerTap".split(","),function(i,k,c,j,h,f,e,b,g,a,r,y,u,w,l,q,o,p,v){var s=j.unitize,x=j.computeSize,n=require.on,z=e.set,t=f.isDef,C=f.val,A=
require.is,J={webkit:"webkitTransitionEnd",trident:"msTransitionEnd",gecko:"transitionend",presto:"oTransitionEnd"}[i.runtime]||"transitionEnd",K=["ease","ease-in","ease-in-out","ease-out","linear"],i={post:"_doBackground"},B={post:function(){this._parent&&this._parent._triggerLayout()}};return c("Ti._.UI.Element",b,{domType:null,domNode:null,_alive:1,constructor:function(b){function e(a,b){var f,g=s[a],a="Touch"+a+"Event",h=b.changedTouches;if(this._preventDefaultTouchEvent)for(f in this._preventDefaultTouchEvent&&
b.preventDefault&&b.preventDefault(),h)h[f].preventDefault&&h[f].preventDefault();t||require.mix(b,{touches:"mouseup"===b.type?[]:[b],targetTouches:[],changedTouches:[b]});for(f in g)g[f]["process"+a](b,c);for(f in g)g[f]["finalize"+a]()}var c=this,g=this.domNode=this._setFocusNode(j.create(this.domType||"div",{className:"TiUIElement "+k.clean(this.declaredClass),"data-widget-id":this.widgetId})),i=this._gestureRecognizers={Pinch:new y,Swipe:new w,TwoFingerTap:new v,DoubleTap:new a,LongPress:new r,
SingleTap:new u,TouchStart:new p,TouchEnd:new q,TouchMove:new o,TouchCancel:new l},s={Start:i,Move:i,End:i,Cancel:i},t="ontouchstart"in window,i=f.hitch(this,"_doBackground");require.has("devmode")&&b&&b._debug&&j.attr.set(g,"data-debug",b._debug);this._touching=!1;n(this.domNode,t?"touchstart":"mousedown",function(a){var b=[n(window,t?"touchmove":"mousemove",function(a){(t||c._touching)&&e("Move",a)}),n(window,t?"touchend":"mouseup",function(a){c._touching=!1;e("End",a);h.off(b)}),t&&n(window,"touchcancel",
function(a){e("Cancel",a);h.off(b)})];c._touching=!0;e("Start",a)});this.addEventListener("touchstart",i);this.addEventListener("touchend",i)},destroy:function(){this._alive&&(this.parent&&this.parent.remove(this),this.domNode&&(j.destroy(this.domNode),this.domNode=null));b.destroy.apply(this,arguments)},_markedForLayout:!1,_triggerLayout:function(a){if(!this._markedForLayout||a){for(var b=!1,e=this;e;){if(e===g._container){b=!0;break}e=e._parent}if(b){for(b=this;null!=b._parent&&b._hasAutoDimensions();)b=
b._parent;b._markedForLayout=!0;g._triggerLayout(a)}}},_triggerParentLayout:function(){this._parent&&this._parent._triggerLayout()},_hasAutoDimensions:function(){return"auto"===this.width||!t(this.width)&&"auto"===this._defaultWidth||"auto"===this.height||!t(this.height)&&"auto"===this._defaultHeight},_doLayout:function(a,b,e,c,f,g){this._originX=a;this._originY=b;this._centerHDefault=f;this._centerVDefault=g;a=this._computeDimensions(e,c,this.left,this.top,this.right,this.bottom,this.center&&this.center.x,
this.center&&this.center.y,this.width,this.height,this.borderWidth);b={zIndex:this.zIndex|0};this._measuredLeft!=a.left&&(this._measuredLeft=a.left,t(this._measuredLeft)&&(b.left=s(this._measuredLeft)));this._measuredTop!=a.top&&(this._measuredTop=a.top,t(this._measuredTop)&&(b.top=s(this._measuredTop)));this._measuredWidth!=a.width&&(this._measuredWidth=a.width,t(this._measuredWidth)&&(b.width=s(this._measuredWidth)));this._measuredHeight!=a.height&&(this._measuredHeight=a.height,t(this._measuredHeight)&&
(b.height=s(this._measuredHeight)));this._measuredRightPadding=a.rightPadding;this._measuredBottomPadding=a.bottomPadding;this._measuredBorderWidth=a.borderWidth;z(this.domNode,b);this._markedForLayout=!1;this._doAnimationAfterLayout&&(this._doAnimationAfterLayout=!1,this._doAnimation())},_computeDimensions:function(a,b,e,c,f,g,h,j,i,k,r){var e=x(e,a,1),c=x(c,b,1),f=x(f,a),g=x(g,b),h=h&&x(h,a,1),j=j&&x(j,b,1),i=x(i,a),k=x(k,b),l=t(f)?a-f:void 0,n=t(g)?b-g:void 0;if(t(i))t(e)?l=void 0:t(h)?"auto"===
i?e="calculateAuto":(e=h-i/2,l=void 0):t(l)||(e="calculateAuto");else if(t(h))t(e)?(i=2*(h-e),l=void 0):i=t(l)?2*(l-h):x(this._defaultWidth,a);else if(!t(e)||!t(l))i=x(this._defaultWidth,a),!t(e)&&!t(l)&&(e="calculateAuto");if(t(k))t(c)?n=void 0:t(j)?"auto"===k?c="calculateAuto":(c=j-k/2,n=void 0):t(n)||(c="calculateAuto");else if(t(j))t(c)?(k=2*(j-c),n=void 0):k=t(n)?2*(n-j):x(this._defaultHeight,b);else if(!t(c)||!t(n))k=x(this._defaultHeight,b),!t(c)&&!t(n)&&(c="calculateAuto");r=x(r);j=h=!1;r=
A(r,"Number")?r:0;"auto"!=i?(t(l)&&(t(e)?i=l-e:e=l-i),i-=2*r):t(l)&&(h=!0);"auto"!=k?(t(n)&&(t(c)?k=n-c:c=n-k),k-=2*r):t(n)&&(j=!0);if(this._getContentWidth)"auto"==i&&(i=this._getContentWidth()),"auto"==k&&(k=this._getContentHeight());else{var o=this._layout._doLayout(this,A(i,"Number")?i:a,A(k,"Number")?k:b);"auto"==i&&(i=o.width);"auto"==k&&(k=o.height)}h&&(t(l)&&(t(e)?i=l-e:e=l-i),i-=2*r);j&&(t(n)&&(t(c)?k=n-c:c=n-k),k-=2*r);"calculateAuto"==e&&(e=this._centerHDefault&&"auto"!==a?x("50%",a)-(A(i,
"Number")?i+2*r:0)/2:0);"calculateAuto"==c&&(c=this._centerVDefault&&"auto"!==b?x("50%",b)-(A(k,"Number")?k+2*r:0)/2:0);e+=this._originX;c+=this._originY;a=A(f,"Number")?f:0;g=A(g,"Number")?g:0;if(!A(e,"Number")||!A(c,"Number")||!A(a,"Number")||!A(g,"Number")||!A(i,"Number")||!A(k,"Number"))throw"Invalid layout";return{left:e,top:c,rightPadding:a,bottomPadding:g,width:i,height:k,borderWidth:r}},_getContentOffset:function(){return{x:0,y:0}},_preventDefaultTouchEvent:!0,_isGestureBlocked:function(a){for(var b in this._gestureRecognizers){var e=
this._gestureRecognizers[b].blocking,c;for(c in e)if(a===e[c])return!0}return!1},_handleTouchEvent:function(a,b){this.enabled&&this.fireEvent(a,b)},_doBackground:function(a){var a=a||{},a=(a.type||"").match(/mouse(over|out)/),b=this._focus.node,c=this.backgroundImage||"none",f=this.backgroundColor;this._touching&&(f=this.backgroundSelectedColor||f,c=this.backgroundSelectedImage||c);a&&(this._over="over"===a[1]);!this._touching&&this.focusable&&this._over&&(f=this.backgroundFocusedColor||f,c=this.backgroundFocusedImage||
c);this.enabled||(f=this.backgroundDisabledColor||f,c=this.backgroundDisabledImage||c);z(b,{backgroundColor:f||(c&&"none"!==c?"transparent":""),backgroundImage:e.url(c)})},_setFocusNode:function(a){var b=this._focus=this._focus||{};b.node!==a&&(b.node&&(h.off(b.evts),h.off(b.evtsMore)),b.node=a,b.evts=[n(a,"focus",this,"_doBackground"),n(a,"blur",this,"_doBackground")]);return a},show:function(){this.visible=!0},hide:function(){this.visible=!1},animate:function(a,b){this._animationData=a;this._animationCallback=
b;g._layoutInProgress?this._doAnimationAfterLayout=!0:this._doAnimation()},_doAnimation:function(){var a=this._animationData||{},b=this._animationCallback;curve=K[a.curve]||"ease";fn=f.hitch(this,function(){var b="";void 0!==a.backgroundColor&&(obj.backgroundColor=a.backgroundColor);void 0!==a.opacity&&z(this.domNode,"opacity",a.opacity);z(this.domNode,"display",void 0!==a.visible&&!a.visible?"none":"");var e=this._computeDimensions(this._parent?this._parent._measuredWidth:"auto",this._parent?this._parent._measuredHeight:
"auto",C(a.left,this.left),C(a.top,this.top),C(a.right,this.right),C(a.bottom,this.bottom),t(a.center)?a.center.x:t(this.center)?this.center.x:void 0,t(a.center)?a.center.y:t(this.center)?this.center.y:void 0,C(a.width,this.width),C(a.height,this.height),C(a.borderWidth,this.borderWidth));z(this.domNode,{left:s(e.left),top:s(e.top),width:s(e.width),height:s(e.height),borderWidth:s(e.borderWidth)});!t(a.zIndex)&&z(this.domNode,"zIndex",a.zIndex);a.transform&&(this._curTransform=this._curTransform?
this._curTransform.multiply(a.transform):a.transform,b=this._curTransform.toCSS());z(this.domNode,"transform",b)});a.duration=a.duration||0;a.delay=a.delay||0;a.transform&&z("transform","");a.start&&a.start();0<a.duration?(z(this.domNode,"transition","all "+a.duration+"ms "+curve+(a.delay?" "+a.delay+"ms":"")),n.once(window,J,f.hitch(this,function(){this._destroyed||(z(this.domNode,"transition",""),A(a.complete,"Function")&&a.complete(),A(b,"Function")&&b())})),setTimeout(fn,0)):(fn(),A(a.complete,
"Function")&&a.complete(),A(b,"Function")&&b())},_setTouchEnabled:function(a){z(this.domNode,"pointerEvents",a?"auto":"none");if(!a)for(var b in this.children)this.children[b]._setTouchEnabled(a)},_measuredLeft:0,_measuredTop:0,_measuredRightPadding:0,_measuredBottomPadding:0,_measuredWidth:0,_measuredHeight:0,properties:{backgroundColor:i,backgroundDisabledColor:i,backgroundDisabledImage:i,backgroundFocusedColor:i,backgroundFocusedImage:i,backgroundGradient:{set:function(a){var a=a||{},b=[],e=a.colors||
[],c=a.type,f=a.startPoint,g=a.endPoint;if("linear"===c)f&&g&&f.x!=g.x&&f.y!=g.y&&b.concat([s(a.startPoint.x)+" "+s(a.startPoint.y),s(a.endPoint.x)+" "+s(a.startPoint.y)]);else if("radial"===c)f=a.startRadius,g=a.endRadius,f&&g&&b.push(s(f)+" "+s(g)),b.push("ellipse closest-side");else{z(this.domNode,"backgroundImage","none");return}require.each(e,function(a){b.push(a.color?a.color+" "+100*a.position+"%":a)});b=c+"-gradient("+b.join(",")+")";require.each(require.config.vendorPrefixes.css,function(a){z(this.domNode,
"backgroundImage",a+b)});return a}},backgroundImage:i,backgroundSelectedColor:i,backgroundSelectedImage:i,borderColor:{set:function(a){z(this.domNode,"borderColor",a)?(this.borderWidth|0||(this.borderWidth=1),z(this.domNode,"borderStyle","solid")):this.borderWidth=0;return a}},borderRadius:{set:function(a){z(this.domNode,"borderRadius",s(a));return a}},borderWidth:{set:function(a){var b={borderWidth:s(a),borderStyle:"solid"};this.borderColor||(b.borderColor="black");z(this.domNode,b);return a}},bottom:B,
center:B,color:{set:function(a){return z(this.domNode,"color",a)}},enabled:{post:"_doBackground",set:function(a){this._focus.node.disabled=!a;return a},value:!0},focusable:{value:!1,set:function(a){j.attr[a?"add":"remove"](this._focus.node,"tabindex",0);return a}},height:B,left:B,opacity:{set:function(a){return z(this.domNode,"opacity",a)}},visible:{set:function(a,b){a!==b&&(!a&&(this._lastDisplay=e.get(this.domNode,"display")),z(this.domNode,"display",a?this._lastDisplay||"":"none"),a&&this._triggerLayout());
return a}},right:B,size:{set:function(a){console.debug('Property "Titanium._.UI.Element#.size" is not implemented yet.');return a}},touchEnabled:{set:function(a){this._setTouchEnabled(a);return a},value:!0},top:B,transform:{set:function(a){z(this.domNode,"transform",a.toCSS());return this._curTransform=a}},width:B,zIndex:B}})})},"Ti/UI/Label":function(){define("Ti/_/declare,Ti/_/UI/FontWidget,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/_/lang,Ti/UI".split(","),function(i,k,c,j,h,f,e){var b=h.set,g=c.unitize;
return i("Ti.UI.Label",k,{constructor:function(){this.touchEnabled=!1;this.textAlignerDiv=c.create("div",{className:j.clean("TiUILabelTextAligner")},this.domNode);b(this.textAlignerDiv,"display","-webkit-box");b(this.textAlignerDiv,{display:"-moz-box",boxOrient:"vertical",boxPack:"center",width:"100%",height:"100%",overflow:"hidden"});this.textContainerDiv=c.create("div",{className:j.clean("TiUILabelTextContainer"),style:{textAlign:"left",textOverflow:"ellipsis",overflowX:"hidden",width:"100%",maxHeight:"100%",
userSelect:"none",whiteSpace:"nowrap"}},this.textAlignerDiv);this._addStyleableDomNode(this.textContainerDiv)},_defaultWidth:"auto",_defaultHeight:"auto",_getContentWidth:function(){return this._measureText(this.text,this.textContainerDiv).width},_getContentHeight:function(){return this._measureText(this.text,this.textContainerDiv).height},_setTouchEnabled:function(a){k.prototype._setTouchEnabled.apply(this,arguments);var e=a?"auto":"none";b(this.textAlignerDiv,"pointerEvents",e);b(this.textContainerDiv,
"pointerEvents",e)},_setTextShadow:function(){var a=this.shadowColor&&""!==this.shadowColor?this.shadowColor:void 0;this.shadowOffset||a?b(this.textContainerDiv,"textShadow",(this.shadowOffset?g(this.shadowOffset.x)+" "+g(this.shadowOffset.y):"0px 0px")+" 0.1em "+f.val(a,"black")):b(this.textContainerDiv,"textShadow","")},properties:{color:{set:function(a){return this.textContainerDiv.style.color=a}},ellipsize:{set:function(a){b(this.textContainerDiv,"textOverflow",a?"ellipsis":"clip");return a},
value:!0},html:{set:function(a){this.textContainerDiv.innerHTML=a;this._hasAutoDimensions()&&this._triggerParentLayout();return a}},shadowColor:{post:function(a){this._setTextShadow();return a}},shadowOffset:{post:function(a){this._setTextShadow();return a}},text:{set:function(a){this.textContainerDiv.innerHTML=a;this._hasAutoDimensions()&&this._triggerParentLayout();return a}},textAlign:{set:function(a){var b="";switch(a){case e.TEXT_ALIGNMENT_LEFT:b="left";break;case e.TEXT_ALIGNMENT_CENTER:b="center";
break;case e.TEXT_ALIGNMENT_RIGHT:b="right"}this.textContainerDiv.style.textAlign=b;return a},value:e.TEXT_ALIGNMENT_LEFT},textid:{get:function(a){console.debug('Property "Titanium.UI.Label#.textid" is not implemented yet.');return a},set:function(a){console.debug('Property "Titanium.UI.Label#.textid" is not implemented yet.');return a}},wordWrap:{set:function(a){b(this.textContainerDiv,"whiteSpace",a?"normal":"nowrap");return a},value:!1}}})})},"Ti/_/Layouts":function(){define(["Ti/_/Layouts/Absolute",
"Ti/_/Layouts/Horizontal","Ti/_/Layouts/Vertical"],function(i,k,c){return{Absolute:i,Horizontal:k,Vertical:c}})},"Ti/UI/Window":function(){define(["Ti/_/declare","Ti/Gesture","Ti/_/UI/SuperView","Ti/UI"],function(i,k,c,j){return i("Ti.UI.Window",c,{_defaultWidth:"100%",_defaultHeight:"100%",postscript:function(){if(this.url){var c=j.currentWindow;j._setWindow(this);require("Ti/_/include!sandbox!"+this.url);j._setWindow(c)}},open:function(h){this.modal&&j._addWindow(this._modalWin=j.createView({backgroundColor:j.backgroundColor,
backgroundImage:j.backgroundImage})).show();c.prototype.open.apply(this,h)},close:function(h){var f=this._modalWin;f&&(j._removeWindow(f).destroy(),this._modalWin=null);c.prototype.close.apply(this,h)},constants:{url:void 0},properties:{modal:void 0,orientation:{get:function(){return k.orientation}},title:{set:function(c){return this.setWindowTitle(c)}},titleid:{get:function(c){console.debug('Property "Titanium.UI.Window#.titleid" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.Window#.titleid" is not implemented yet.');
return c}}}})})},"Ti/Platform":function(){define(["Ti/_","Ti/_/browser","Ti/_/Evented","Ti/_/lang"],function(i,k,c,j){return j.setObject("Ti.Platform",c,{createUUID:i.uuid,canOpenURL:function(){return!0},openURL:function(c){var f=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?/.exec(c);(/^([tel|sms|mailto])/.test(c)||/^([\/?#]|[\w\d-]+^:[\w\d]+^@)/.test(f[1]))&&!/^(localhost)/.test(c)?setTimeout(function(){window.location.href=c},1):window.open(c)},constants:{BATTERY_STATE_CHARGING:1,BATTERY_STATE_FULL:2,
BATTERY_STATE_UNKNOWN:-1,BATTERY_STATE_UNPLUGGED:0,address:null,architecture:null,availableMemory:null,batteryLevel:null,batteryMonitoring:null,batteryState:this.BATTERY_STATE_UNKNOWN,isBrowser:!0,locale:navigator.language,macaddress:null,model:null,name:navigator.userAgent,netmask:null,osname:"mobileweb",ostype:navigator.platform,runtime:k.runtime,processorCount:null,username:null,version:require.config.ti.version}})})},"Ti/_/style":function(){define(["Ti/_","Ti/_/string"],function(i,k){function c(h,
f,e){var b=0,g,a;if(h)if(2<arguments.length)for(;b<j.length;){if(g=j[b++],g+=g?a||(a=k.capitalize(f)):f,g in h.style)return require.each(require.is(e,"Array")?e:[e],function(a){h.style[g]=a}),e}else for(g in f)c(h,g,f[g]);return h}var j=require.config.vendorPrefixes.dom;return{url:function(c){return!c||"none"===c?"":/^url\(/.test(c)?c:"url("+i.getAbsolutePath(c)+")"},get:function(c,f){if(require.is(f,"Array")){for(var e=0;e<f.length;e++)f[e]=c.style[f[e]];return f}return c.style[f]},set:c}})},"Ti/UI/ScrollableView":function(){define("Ti/_/declare,Ti/_/UI/Widget,Ti/_/lang,Ti/_/dom,Ti/_/style,Ti/UI".split(","),
function(i,k,c,j,h,f){var e=h.set,b=require.is,g=j.unitize;return i("Ti.UI.ScrollableView",k,{_velocityThreshold:0.4,_minimumFlickDistanceScaleFactor:15,_minimumDragDistanceScaleFactor:2,constructor:function(){this._contentContainer=f.createView({left:0,top:0,width:"100%",height:"100%"});e(this._contentContainer.domNode,"overflow","hidden");this.add(this._contentContainer);this.add(this._pagingControlContainer=f.createView({width:"100%",height:20,bottom:0,backgroundColor:"black",opacity:0,touchEnabled:!1}));
this._pagingControlContainer.add(this._pagingControlContentContainer=f.createView({width:"auto",height:"100%",top:0,touchEnabled:!1}));this._viewToRemoveAfterScroll=-1;var a,b,h=!1,j,i,k;this.addEventListener("touchend",function(a){if(!i&&h){var e=this._measuredWidth,g=j.indexOf(this.views[this.currentPage])*-e;b.animate({duration:10*((300+0.2*e)/(e-Math.abs(a._distance))),left:g,curve:f.ANIMATION_CURVE_EASE_OUT},c.hitch(this,function(){this._contentContainer._removeAllChildren();this._contentContainer.add(this.views[this.currentPage])}))}});
this.addEventListener("swipe",function(q){var o=this._measuredWidth;if(!h){h=!0;i=!1;k=(new Date).getTime();a=0;j=[];0<this.currentPage&&(j.push(this.views[this.currentPage-1]),a=-o);j.push(this.views[this.currentPage]);this.currentPage<this.views.length-1&&j.push(this.views[this.currentPage+1]);b=f.createView({width:g(j.length*o),height:"100%",layout:"absolute",left:a,top:0});this._contentContainer._removeAllChildren();for(var p=0;p<j.length;p++){var v=f.createView({left:g(p*o),top:0,width:g(o),
height:"100%",layout:"horizontal"});e(v.domNode,"overflow","hidden");v.add(j[p]);b.add(v)}b.left=g(a);this._contentContainer.add(b);this._triggerLayout(!0)}p=a+q._distance;p=0>p?p>-b._measuredWidth+o?p:-b._measuredWidth+o:0;b.domNode.style.left=g(p);if(q._finishedSwiping){h=!1;i=!0;var v=Math.abs(q._distance/((new Date).getTime()-k))>this._velocityThreshold?this._minimumFlickDistanceScaleFactor:this._minimumDragDistanceScaleFactor,s=this.currentPage,x=a;q._distance>o/v&&0<this.currentPage?(s=this.currentPage-
1,x=0):q._distance<-o/v&&this.currentPage<this.views.length-1&&(s=this.currentPage+1,x=3===j.length?-2*o:-o);var n=this,z=function(){n._contentContainer._removeAllChildren();n._contentContainer.add(n.views[s]);n._triggerLayout(!0);n.currentPage!==s&&n.fireEvent("scroll",{currentPage:s,view:n.views[s],x:q.x,y:q.y});n.properties.__values__.currentPage=s};this._updatePagingControl(s);0==p||p==-b._measuredWidth+o?z():b.animate({duration:200+10*(0.2*o/(o-Math.abs(q._distance))),left:x,curve:f.ANIMATION_CURVE_EASE_OUT},
c.hitch(this,function(){z()}))}})},addView:function(a){a&&(this.views.push(a),1==this.views.length&&(this.properties.__values__.currentPage=0,this._contentContainer._removeAllChildren(),this._contentContainer.add(a)),this._updatePagingControl(this.currentPage))},removeView:function(a){a=b(a,"Number")?a:this.views.indexOf(a);0>a||a>=this.views.length||(a==this.currentPage?1==this.views.length?(this._contentContainer._removeAllChildren(),this._removeViewFromList(a)):(this._viewToRemoveAfterScroll=a,
this.scrollToView(a==this.views.length-1?--a:++a)):this._removeViewFromList(a))},_removeViewFromList:function(a){this.views.splice(a,1);a<this.currentPage&&this.properties.__values__.currentPage--;this._updatePagingControl(this.currentPage)},scrollToView:function(a){var h=b(a,"Number")?a:this.views.indexOf(a);if(!(0>h||h>=this.views.length||h==this.currentPage))if(this._contentContainer.domNode.offsetWidth){var j=this._measuredWidth,i=[],a=-1,k=0;if(h>this.currentPage)for(var l=this.currentPage;l<=
h;l++)i.push(this.views[l]);else{for(l=h;l<=this.currentPage;l++)i.push(this.views[l]);k=-(i.length-1)*j;a=1}var q=f.createView({width:g(i.length*j),height:"100%",layout:"absolute",left:k,top:0});this._contentContainer._removeAllChildren();for(l=0;l<i.length;l++){var o=f.createView({left:g(l*j),top:0,width:g(j),height:"100%",layout:"horizontal"});e(o.domNode,"overflow","hidden");o.add(i[l]);q.add(o)}q.left=g(k);this._contentContainer.add(q);this._triggerLayout(!0);l=300+0.2*j;j*=i.length-1;this._updatePagingControl(h);
q.animate({duration:l,left:k+a*j,curve:f.ANIMATION_CURVE_EASE_IN_OUT},c.hitch(this,function(){this._contentContainer._removeAllChildren();this._contentContainer.add(this.views[h]);this._triggerLayout(!0);this.properties.__values__.currentPage=h;-1!=this._viewToRemoveAfterScroll&&(this._removeViewFromList(this._viewToRemoveAfterScroll),this._viewToRemoveAfterScroll=-1);this.fireEvent("scroll",{currentPage:h,view:this.views[h]})}))}else this._contentContainer._removeAllChildren(),this._contentContainer.add(this.views[h])},
_showPagingControl:function(){this.showPagingControl?this._isPagingControlActive||(this._isPagingControlActive=!0,this._pagingControlContainer.animate({duration:250,opacity:0.75}),0<this.pagingControlTimeout&&setTimeout(c.hitch(this,function(){this._pagingControlContainer.animate({duration:750,opacity:0});this._isPagingControlActive=!1}),this.pagingControlTimeout)):this._pagingControlContainer.opacity=0},_updatePagingControl:function(a,b){this._pagingControlContentContainer._removeAllChildren();for(var c=
this.pagingControlHeight/2,h=0;h<this.views.length;h++){var j=f.createView({width:c,height:c,top:c/2,left:2*h*c,backgroundColor:h===a?"white":"grey"});e(j.domNode,"borderRadius",g(c/2));this._pagingControlContentContainer.add(j)}!b&&this._showPagingControl()},_defaultWidth:"100%",_defaultHeight:"100%",properties:{currentPage:{set:function(a,b){return 0<=a&&a<this.views.length?(this.scrollToView(a),a):b}},pagingControlColor:{set:function(a){return this._pagingControlContainer.backgroundColor=a},value:"black"},
pagingControlHeight:{set:function(a){return this._pagingControlContainer.height=a},value:20},pagingControlTimeout:{set:function(a){0==this.pagingControlTimeout&&this._hidePagingControl();return a},value:1250},showPagingControl:{set:function(a){0==this.pagingControlTimeout&&this._hidePagingControl();return a},value:!1},views:{set:function(a,e){if(b(a,"Array"))return 0==e.length&&0<a.length&&(this._contentContainer._removeAllChildren(),this._contentContainer.add(a[0])),this.properties.__values__.currentPage=
0,a},post:function(){this._updatePagingControl(this.currentPage,!0)},value:[]}}})})},"Ti/UI/ActivityIndicator":function(){define(["Ti/_/declare","Ti/_/UI/Element"],function(i,k){return i("Ti.UI.ActivityIndicator",k,{show:function(){console.debug('Method "Titanium.UI.ActivityIndicator#.show" is not implemented yet.')},hide:function(){console.debug('Method "Titanium.UI.ActivityIndicator#.hide" is not implemented yet.')},_defaultWidth:"auto",_defaultHeight:"auto",_getContentWidth:function(){console.debug('Property "Titanium.UI.ActivityIndicator#._getContentWidth" is not implemented yet.')},
_getContentHeight:function(){console.debug('Property "Titanium.UI.ActivityIndicator#._getContentHeight" is not implemented yet.')},properties:{color:{get:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.color" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.color" is not implemented yet.');return c}},font:{get:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.font" is not implemented yet.');return c},
set:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.font" is not implemented yet.');return c}},message:{get:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.message" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.message" is not implemented yet.');return c}},messageid:{get:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.messageid" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.ActivityIndicator#.messageid" is not implemented yet.');
return c}}}})})},"Ti/Facebook":function(){define("Ti/Facebook",["Ti/_/Evented"],function(){(function(i){function k(){FB.init({appId:b,status:!1,cookie:!0,oauth:!0,xfbml:!0});FB.getLoginStatus(function(a){f=!0;"connected"==a.status&&c(a)||e&&h()})}function c(a){var b=a.authResponse;if(b)return loggedIn=!0,i.uid=b.userID,i.expirationDate=new Date((new Date).getTime()+1E3*b.expiresIn),b.expiresIn&&setTimeout(function(){i.logout()},1E3*b.expiresIn),i.fireEvent("login",{cancelled:!1,data:a,success:!0,
uid:i.uid}),!0}function j(a,b,e,c){result={source:i,success:!1};result[b]=e;!a||a.error?a&&(result.error=a.error):(result.success=!0,result.result=JSON.stringify(a));c(result)}function h(){FB.login(function(a){c(a)||i.fireEvent("login",{cancelled:!0,data:a,error:"user cancelled or an internal error occured.",success:!1,uid:a.id})},{scope:i.permissions.join()})}var f=!1,e=!1,b=null,g=document.createElement("div"),a=!1;Ti._5.EventDriven(i);Ti._5.prop(i,{accessToken:void 0,appid:{get:function(){return b},
set:function(e){b=e;a&&k()}},expirationDate:void 0,forceDialogAuth:{get:function(){return!0},set:function(){}},loggedIn:!1,permissions:void 0,uid:void 0});g.id="fb-root";document.body.appendChild(g);if(!document.getElementById("facebook-jssdk")){var g=document.createElement("script"),r=document.getElementsByTagName("head")[0];g.id="facebook-jssdk";g.async=!0;g.src="//connect.facebook.net/en_US/all.js";r.insertBefore(g,r.firstChild)}window.fbAsyncInit=function(){a=!0;b&&k()};i.authorize=function(){if(null==
b)throw Error("App ID not set. Facebook authorization cancelled.");f?h():e=!0};i.createLoginButton=function(){throw Error('Method "Titanium.Facebook.createLoginButton" is not implemented yet.');};i.dialog=function(a,b,e){loggedIn?(b.method=a,FB.ui(b,function(b){j(b,"action",a,e)})):e({success:!1,error:"not logged in",action:a,source:i})};i.logout=function(){loggedIn&&FB.logout(function(){loggedIn=!1;i.fireEvent("logout",{success:!0})})};i.request=function(a,b,e){loggedIn?(b.method=a,b.urls="facebook.com,developers.facebook.com",
FB.api(b,function(b){j(b,"method",a,e)})):e({success:!1,error:"not logged in",method:a,source:i})};i.requestWithGraphPath=function(a,b,e,c){loggedIn?FB.api(a,e,b,function(b){j(b,"path",a,c)}):c({success:!1,error:"not logged in",path:a,source:i})}})(Ti._5.createClass("Ti.Facebook"))})},"Ti/Gesture":function(){define(["Ti/_/Evented","Ti/_/lang","Ti/UI"],function(i,k,c){function j(){r.orientation=c.PORTRAIT;switch(f.orientation){case 90:r.orientation=c.LANDSCAPE_LEFT;break;case -90:r.orientation=c.LANDSCAPE_RIGHT;
break;case 180:r.orientation=c.UPSIDE_PORTRAIT}return r.orientation}function h(a){var e=null,f=Math.abs(a.beta||a.y|0),g=Math.abs(a.gamma||a.x|0);5>f&&170<g&&(e=c.FACE_DOWN);5>f&&5>g&&(e=c.FACE_UP);50<f&&0>f&&b!=e&&(e=c.UPSIDE_PORTRAIT);null!==e&&b!==e&&r.fireEvent("orientationchange",{orientation:b=e,source:a.source})}var f=window,e=require.on,b=null,g=(new Date).getTime(),a={},r=k.setObject("Ti.Gesture",i,{properties:{orientation:c.UNKNOWN}});j();e(f,"orientationchange",function(a){j();b!==r.orientation&&
r.fireEvent("orientationchange",{orientation:b=r.orientation,source:a.source})});e(f,"MozOrientation",h);e(f,"deviceorientation",h);e(f,"devicemotion",function(b){var e=b.acceleration||b.accelerationIncludingGravity,c,f;if(b=e&&{x:e.x,y:e.y,z:e.z,source:b.source}){if(void 0!==a.x&&(e=10<Math.abs(a.x-b.x),c=10<Math.abs(a.y-b.y),f=10<Math.abs(a.z-b.z),e&&(c||f)||c&&f))if(e=(new Date).getTime(),300<(b.timestamp=e-g))g=e,r.fireEvent("shake",b);a=b}});return r})},"Ti/App/Properties":function(){define(["Ti/_/Evented",
"Ti/_/lang"],function(i,k){function c(a){g||(g=JSON.parse(localStorage.getItem(h))||{});return a?g[a]:g}function j(a,b,j){a&&(c(),j===f?delete g[a]:g[a]=e[b]?e[b](j):j,localStorage.setItem(h,JSON.stringify(g)))}var h="ti:properties",f,e={Bool:function(a){return!!a},Double:function(a){return parseFloat(a)},Int:function(a){return parseInt(a)},List:function(a){return a===f?a:require.is(a,"Array")?a:[a]},String:function(a){return""+a}},b,g,a=k.setObject("Ti.App.Properties",i,{hasProperty:function(a){return!!c(a)},
listProperties:function(){var a=c(),b=[],e;for(e in a)b.push(e);return b},removeProperty:function(a){j(a)}});for(b in e)(function(b){a["get"+b]=function(a,g){var h=c(a);(h===f||null===h)&&(h=g);return e[b]?e[b](h):h};a["set"+b]=function(a,e){j(a,b,e)}})(b);return a})},"Ti/_/event":function(){define({stop:function(i){i&&(i.preventDefault&&i.preventDefault(),i.stopPropagation&&i.stopPropagation())},off:function(i){require.each(require.is(i,"Array")?i:[i],function(i){i&&i()})}})},"Ti/_/Layouts/Vertical":function(){define(["Ti/_/Layouts/Base",
"Ti/_/declare"],function(i,k){return k("Ti._.Layouts.Vertical",i,{_doLayout:function(c,j,h){var f={width:0,height:0},e=0,b;for(b in c.children){var g=c.children[b];g._doLayout(0,e,j,h,!0,!1);var a=g._measuredWidth+g._measuredLeft+2*g._measuredBorderWidth+g._measuredRightPadding,e=g._measuredHeight+g._measuredTop+2*g._measuredBorderWidth+g._measuredBottomPadding;a>f.width&&(f.width=a);e>f.height&&(f.height=e)}return f}})})},"Ti/_/UI/FontWidget":function(){define("Ti/_/declare,Ti/_/dom,Ti/_/lang,Ti/_/ready,Ti/_/style,Ti/_/UI/Widget".split(","),
function(i,k,c,j,h,f){var e;j(function(){e=k.create("p",{style:{position:"absolute",top:"-1000em",left:0,height:"auto",width:"auto"}},document.body)});return i("Ti._.UI.FontWidget",f,{constructor:function(){this._styleableDomNodes=[]},_setFont:function(b,e){c.isDef(b.fontSize)&&(b.fontSize=k.unitize(b.fontSize));h.set(e,b)},_addStyleableDomNode:function(b){this._styleableDomNodes.push(b)},_removeStyleableDomNode:function(b){b=this._styleableDomNodes.indexOf(b);-1!=b&&this._styleableDomNodes.splice(b,
1)},_measureText:function(b,c){var a=window.getComputedStyle(c),f=this.font||{},h=!b||""===b;e.innerHTML=h?"\u00c4y":b;this._setFont({fontFamily:f.fontFamily||a.fontFamily,fontSize:f.fontSize||a.fontSize,fontStyle:f.fontStyle||a.fontStyle,fontWeight:f.fontWeight||a.fontWeight},e);return{width:h?0:e.clientWidth,height:e.clientHeight}},properties:{font:{set:function(b){for(var e in this._styleableDomNodes)this._setFont(b,this._styleableDomNodes[e]);return b}}}})})},"Ti/UI/ScrollView":function(){define(["Ti/_/declare",
"Ti/UI/View","Ti/_/style","Ti/_/lang","Ti/UI"],function(i,k,c,j,h){return i("Ti.UI.ScrollView",k,{constructor:function(){var f=this._contentContainer=h.createView({width:"100%",height:"100%",left:0,top:0});k.prototype.add.call(this,f);c.set(f.domNode,"overflow","hidden");f.add(this._contentMeasurer=h.createView({width:"auto",height:"auto",left:0,top:0}));c.set(this._contentMeasurer.domNode,"overflow","hidden");this._createHorizontalScrollBar();this._createVerticalScrollBar();var e;this.addEventListener("touchstart",
function(b){e={x:b.x,y:b.y};this._startScrollBars({x:f.domNode.scrollLeft/(this._contentMeasurer._measuredWidth-this._measuredWidth),y:f.domNode.scrollTop/(this._contentMeasurer._measuredHeight-this._measuredHeight)},{x:f._measuredWidth/this._contentMeasurer._measuredWidth,y:f._measuredHeight/this._contentMeasurer._measuredHeight});this._isScrollBarActive&&this.fireEvent("dragStart",{})});this.addEventListener("touchend",function(){e=null;this._endScrollBars();this._isScrollBarActive&&this.fireEvent("dragEnd",
{decelerate:!1})});this.addEventListener("touchmove",j.hitch(this,function(b){var a=f.domNode.scrollLeft,c=f.domNode.scrollTop;f.domNode.scrollLeft+=e.x-b.x;f.domNode.scrollTop+=e.y-b.y;e={x:b.x,y:b.y};this._isScrollBarActive&&this.fireEvent("scroll",{x:a,y:c,dragging:!0});this._updateScrollBars({x:a/(this._contentMeasurer._measuredWidth-this._measuredWidth),y:c/(this._contentMeasurer._measuredHeight-this._measuredHeight)})}));var b=this;this.domNode.addEventListener("mousewheel",function(e){b._startScrollBars({x:f.domNode.scrollLeft/
(b._contentMeasurer._measuredWidth-b._measuredWidth),y:f.domNode.scrollTop/(b._contentMeasurer._measuredHeight-b._measuredHeight)},{x:f._measuredWidth/b._contentMeasurer._measuredWidth,y:f._measuredHeight/b._contentMeasurer._measuredHeight});setTimeout(function(){f.domNode.scrollLeft-=e.wheelDeltaX;f.domNode.scrollTop-=e.wheelDeltaY;b._isScrollBarActive&&b.fireEvent("scroll",{x:f.domNode.scrollLeft,y:f.domNode.scrollTop,dragging:!1});b._updateScrollBars({x:(f.domNode.scrollLeft-e.wheelDeltaX)/(b._contentMeasurer._measuredWidth-
b._measuredWidth),y:(f.domNode.scrollTop-e.wheelDeltaY)/(b._contentMeasurer._measuredHeight-b._measuredHeight)});setTimeout(function(){b._endScrollBars()},10)},10)})},scrollTo:function(c,e){null!==c&&(this._contentContainer.scrollLeft=parseInt(c));null!==e&&(this._contentContainer.scrollTop=parseInt(e))},_defaultWidth:"100%",_defaultHeight:"100%",_getContentOffset:function(){return this.contentOffset},_doLayout:function(){this._contentMeasurer.layout=this.layout;k.prototype._doLayout.apply(this,arguments)},
add:function(c){this._contentMeasurer.add(c)},remove:function(c){this._contentMeasurer.remove(c)},properties:{contentHeight:{get:function(){return this._contentMeasurer.height},set:function(c){return this._contentMeasurer.height=c}},contentOffset:{get:function(){return{x:this._contentContainer.domNode.scrollLeft,y:this._contentContainer.domNode.scrollTop}},set:function(c){this._contentContainer.domNode.scrollLeft=c.x;this._contentContainer.domNode.scrollTop=c.y;return c}},contentWidth:{get:function(){return this._contentMeasurer.width},
set:function(c){return this._contentMeasurer.width=c}},showHorizontalScrollIndicator:{set:function(c,e){c!==e&&(c?this._createHorizontalScrollBar():this._destroyHorizontalScrollBar());return c},value:!0},showVerticalScrollIndicator:{set:function(c,e){c!==e&&(c?this._createVerticalScrollBar():this._destroyVerticalScrollBar());return c},value:!0}}})})},"Ti/_/Gestures/Pinch":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.Pinch",
c,{name:"pinch",_touchStartLocation:null,_touchEndLocation:null,_fingerDifferenceThresholdTimer:null,_startDistance:null,_previousDistance:null,_previousTime:null,_fingerDifferenceThreshold:100,_driftThreshold:25,processTouchStartEvent:function(c){var h=c.changedTouches[0].clientX,f=c.changedTouches[0].clientY,e=c.touches.length,b=c.changedTouches.length;1==e&&1==b?(this._touchStartLocation=[{x:h,y:f}],this._fingerDifferenceThresholdTimer=setTimeout(k.hitch(this,function(){this._touchStartLocation=
null}),this._fingerDifferenceThreshold)):2==e&&1==b?(clearTimeout(this._fingerDifferenceThresholdTimer),this._touchStartLocation&&(this._touchStartLocation.push({x:h,y:f}),this._startDistance=Math.sqrt(Math.pow(this._touchStartLocation[0].x-this._touchStartLocation[1].x,2)+Math.pow(this._touchStartLocation[0].y-this._touchStartLocation[1].y,2)))):2==e&&2==b?(this._touchStartLocation=[{x:h,y:f},{x:c.changedTouches[1].clientX,y:c.changedTouches[1].clientY}],this._startDistance=Math.sqrt(Math.pow(this._touchStartLocation[0].x-
this._touchStartLocation[1].x,2)+Math.pow(this._touchStartLocation[0].y-this._touchStartLocation[1].y,2))):this._touchStartLocation=null},processTouchEndEvent:function(c,h){this.processTouchMoveEvent(c,h);this._touchStartLocation=null},processTouchMoveEvent:function(c,h){if(this._touchStartLocation&&2==this._touchStartLocation.length&&2==c.touches.length){var f=Math.sqrt(Math.pow(c.touches[0].clientX-c.touches[1].clientX,2)+Math.pow(c.touches[0].clientY-c.touches[1].clientY,2)),e=0,b=(new Date).getTime();
this._previousDistance&&(e=Math.abs(this._previousDistance/this._startDistance-f/this._startDistance)/((b-this._previousTime)/1E3));this._previousDistance=f;this._previousTime=b;h._isGestureBlocked(this.name)||k.hitch(h,h._handleTouchEvent(this.name,{scale:f/this._startDistance,velocity:e}))}},processTouchCancelEvent:function(){this._touchStartLocation=null}})})},"Ti/_/Gestures/TouchCancel":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.TouchCancel",
c,{name:"touchcancel",processTouchCancelEvent:function(c,h){if(!h._isGestureBlocked(this.name))for(var f=0;f<c.changedTouches.length;f++)k.hitch(h,h._handleTouchEvent(this.name,{x:c.changedTouches[f].clientX,y:c.changedTouches[f].clientY}))}})})},"Ti/UI/Tab":function(){define(["Ti/_/declare","Ti/_/lang","Ti/UI/View","Ti/_/dom"],function(i,k,c,j){return i("Ti.UI.Tab",c,{constructor:function(){this._windows=[];this._contentContainer=j.create("div",{className:"TiUIButtonContentContainer",style:{width:"100%",
height:"100%",display:["-webkit-box","-moz-box"],boxOrient:"horizontal",boxPack:"center",boxAlign:"center"}},this.domNode);this._tabIcon=j.create("img",{className:"TiUIButtonImage"},this._contentContainer);this._tabTitle=j.create("div",{className:"TiUIButtonTitle",style:{whiteSpace:"nowrap"}},this._contentContainer);require.on(this.domNode,"click",this,function(){this._tabGroup&&this._tabGroup.setActiveTab(this)})},open:function(c,f){c=c||this.window;this._windows.push(c);c.activeTab=this;k.isDef(c.backgroundColor)||
(c.backgroundColor="white");var e=k.isDef(c.opacity)?c.opacity:1;c.opacity=0;c.open(f);c.animate({opacity:e,duration:250},function(){c.opacity=e})},close:function(c){var f=this._windows.pop();f&&f.animate({opacity:0,duration:250},function(){f.close(c)})},_defaultWidth:"auto",_defaultHeight:"auto",_tabGroup:null,_tabWidth:"100%",properties:{active:{get:function(){return this._tabGroup&&this._tabGroup.activeTab===this}},icon:{set:function(c){return this._tabIcon.src=c}},title:{set:function(c){return this._tabTitle.innerHTML=
c}},titleid:{get:function(c){console.debug('Property "Titanium.UI.Tab#.titleid" is not implemented yet.');return c},set:function(c){console.debug('Property "Titanium.UI.Tab#.titleid" is not implemented yet.');return c}},width:function(){return this._tabWidth},height:function(){return"100%"},window:{get:function(c){var f=this._windows;return c?c:f.length?f[0]:null},set:function(c){this._windows.unshift(c);return c}}}})})},"Ti/_/Layouts/Absolute":function(){define(["Ti/_/Layouts/Base","Ti/_/declare"],
function(i,k){return k("Ti._.Layouts.Absolute",i,{_doLayout:function(c,i,h){var f={width:0,height:0},e;for(e in c.children){var b=c.children[e];b._doLayout(0,0,i,h,!0,!0);var g=b._measuredWidth+b._measuredLeft+2*b._measuredBorderWidth+b._measuredRightPadding,b=b._measuredHeight+b._measuredTop+2*b._measuredBorderWidth+b._measuredBottomPadding;g>f.width&&(f.width=g);b>f.height&&(f.height=b)}return f}})})},"Ti/_/Layouts/Base":function(){define(["Ti/_/css","Ti/_/declare","Ti/_/style","Ti/_/dom"],function(i,
k){return k("Ti._.Layouts.Base",null,{constructor:function(c){this.element=c;i.add(c.domNode,i.clean(this.declaredClass))},destroy:function(){i.remove(this.element.domNode,i.clean(this.declaredClass))}})})},"Ti/UI/TextField":function(){define("Ti/_/declare,Ti/_/UI/TextBox,Ti/_/css,Ti/_/dom,Ti/_/lang,Ti/_/style,Ti/UI".split(","),function(i,k,c,j,h,f,e){var b=["None","Line","Bezel","Rounded"];return i("Ti.UI.TextField",k,{constructor:function(){var b=this._field=j.create("input",{autocomplete:"off",
style:{width:"100%",height:"100%"}},this.domNode);this._initTextBox();this._keyboardType();this.borderStyle=e.INPUT_BORDERSTYLE_NONE;require.on(b,"focus",this,function(){this.clearOnEdit&&(b.value="")})},_defaultWidth:"auto",_defaultHeight:"auto",_getContentWidth:function(){return this._measureText(this.value,this._field).width},_getContentHeight:function(){return this._measureText(this.value,this._field).height},_setTouchEnabled:function(b){this.slider&&f.set(this._field,"pointerEvents",b?"auto":
"none")},_keyboardType:function(b){var a="text",b=b||{};if(h.val(b.pm,this.passwordMask))a="password";else switch(h.val(b.kt,this.keyboardType)){case e.KEYBOARD_EMAIL:a="email";break;case e.KEYBOARD_NUMBER_PAD:a="number";break;case e.KEYBOARD_PHONE_PAD:a="tel";break;case e.KEYBOARD_URL:a="url"}this._field.type=a},properties:{borderStyle:{set:function(e,a){var f=this.domNode;e!==a&&(c.remove(f,"TiUITextFieldBorderStyle"+b[a]),c.add(f,"TiUITextFieldBorderStyle"+b[e]));return e}},clearOnEdit:!1,hintText:{set:function(b){return this._field.placeholder=
b}},keyboardType:{set:function(b){this._keyboardType({kt:b});return b}},maxLength:{set:function(b){b|=0;this._field.maxlength=0<b?b:"";return b}},passwordMask:{value:!1,set:function(b){this._keyboardType({pm:b});return b}}}})})},"Ti/_/dom":function(){define(["Ti/_","Ti/_/style"],function(i,k){var c=require.is,j={innerHTML:1,className:1,value:1},h={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"},f={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",
colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"},e={set:function(b,g,a){if(2===arguments.length){for(var i in g)e.set(b,i,g[i]);return b}i=g.toLowerCase();var y=f[i]||g,u=j[y];if("style"===y&&!require.is(a,"String"))return k.set(b,a);if(u||c(a,"Boolean")||c(a,"Function"))return b[g]=a,b;b.setAttribute(h[i]||g,a);return b},remove:function(b,e){b.removeAttribute(e);return b}};return{create:function(b,f,a,h){var i=a?a.ownerDocument:document;c(b,"String")&&(b=i.createElement(b));
f&&e.set(b,f);a&&this.place(b,a,h);return b},attr:e,place:function(b,e){e.appendChild(b);return b},detach:function(b){return b.parentNode&&b.parentNode.removeChild(b)},destroy:function(b){try{var e=b.ownerDocument.createElement("div");e.appendChild(this.detach(b)||b);e.innerHTML=""}catch(a){}},unitize:function(b){return isNaN(b-0)||b-0!=b?b:b+"px"},computeSize:function(b,e,a){var c=require.is(b);if("String"===c)if("auto"===b)a&&(b=void 0);else switch(c=parseFloat(b),b.substring((c+"").length)){case "%":if("auto"==
e)a?void 0:"auto";else if(!require.is(e,"Number")){console.error("Could not compute percentage size/position of element.");return}return c/100*e;case "mm":c*=10;case "cm":return 0.0393700787*c*i.dpi;case "pc":dpi/=12;case "pt":dpi/=72;case "in":return c*i.dpi;case "px":case "dp":return c}else"Number"!==c&&(b=void 0);return b}}})},"Ti/App":function(){define(["Ti/_/Evented","Ti/_/lang"],function(i,k){return k.mixProps(k.setObject("Ti.App",i),{constants:require.config.app})})},"Ti/Filesystem":function(){define("Ti/Filesystem",
["Ti/_/Evented"],function(){(function(i){Ti._5.EventDriven(i);Ti._5.propReadOnly(i,{MODE_APPEND:1,MODE_READ:2,MODE_WRITE:3,applicationDataDirectory:"/",applicationDirectory:"/",lineEnding:"\n",resourcesDirectory:"/",separator:"/",tempDirectory:null});i.createFile=function(){console.debug('Method "Titanium.Filesystem.createFile" is not implemented yet.')};i.createTempDirectory=function(){console.debug('Method "Titanium.Filesystem.createTempDirectory" is not implemented yet.')};i.createTempFile=function(){console.debug('Method "Titanium.Filesystem.createTempFile" is not implemented yet.')};
i.getFile=function(){console.debug('Method "Titanium.Filesystem.getFile" is not implemented yet.');return new Ti.Filesystem.File};i.isExternalStoragePresent=function(){console.debug('Method "Titanium.Filesystem.isExternalStoragePresent" is not implemented yet.')}})(Ti._5.createClass("Ti.Filesystem"))})},"Ti/Network/HTTPClient":function(){define(["Ti/_","Ti/_/declare","Ti/_/lang","Ti/_/Evented","Ti/Network"],function(i,k,c,j){var h=require.is,f=require.on;return k("Ti.Network.HTTPClient",j,{constructor:function(){var e=
this._xhr=new XMLHttpRequest;f(e,"error",this,"_onError");f(e.upload,"error",this,"_onError");f(e,"progress",this,"_onProgress");f(e.upload,"progress",this,"_onProgress");e.onreadystatechange=c.hitch(this,function(){var b=this.constants;switch(e.readyState){case 0:b.readyState=this.UNSENT;break;case 1:b.readyState=this.OPENED;break;case 2:b.readyState=this.LOADING;break;case 3:b.readyState=this.HEADERS_RECEIVED;break;case 4:clearTimeout(this._timeoutTimer),this._completed=1,b.readyState=this.DONE,
200==e.status?(b.responseText=b.responseData=e.responseText,b.responseXML=e.responseXML,h(this.onload,"Function")&&this.onload.call(this)):e.status/100|0&&this._onError()}this._fireStateChange()})},destroy:function(){this._xhr&&(this._xhr.abort(),this._xhr=null);j.destroy.apply(this,arguments)},_onError:function(e){this.abort();h(e,"Object")||(e={message:e});e.error||(e.error=e.message||xhr.status);parseInt(e.error)||(e.error="Can't reach host");h(this.onerror,"Function")&&this.onerror.call(this,
e)},_onProgress:function(e){e.progress=e.lengthComputable?e.loaded/e.total:!1;h(this.onsendstream,"Function")&&this.onsendstream.call(this,e)},abort:function(){var e=this.constants;e.responseText=e.responseXML=e.responseData="";this._completed=!0;clearTimeout(this._timeoutTimer);this.connected&&this._xhr.abort();e.readyState=this.UNSENT;this._fireStateChange()},_fireStateChange:function(){h(this.onreadystatechange,"Function")&&this.onreadystatechange.call(this)},getResponseHeader:function(e){return 1<
this._xhr.readyState?this._xhr.getResponseHeader(e):null},open:function(e,b,c){var a=Ti.Network.httpURLFormatter,f=this.constants;this.abort();this._xhr.open(f.connectionType=e,f.location=i.getAbsolutePath(a?a(b):b),!!c);this._xhr.setRequestHeader("UserAgent",Ti.userAgent)},send:function(e){try{var b=this.timeout|0;this._completed=!1;(e=h(e,"Object")?c.urlEncode(e):e)&&this._xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");this._xhr.send(e);clearTimeout(this._timeoutTimer);
b&&(this._timeoutTimer=setTimeout(c.hitch(this,function(){this.connected&&(this.abort(),!this._completed&&this._onError("Request timed out"))},b)))}catch(f){}},setRequestHeader:function(e,b){this._xhr.setRequestHeader(e,b)},properties:{ondatastream:void 0,onerror:void 0,onload:void 0,onreadystatechange:void 0,onsendstream:void 0,timeout:void 0},constants:{DONE:4,HEADERS_RECEIVED:2,LOADING:3,OPENED:1,UNSENT:1,connected:function(){return this.readyState>=this.OPENED},connectionType:void 0,location:void 0,
readyState:this.UNSENT,responseData:void 0,responseText:void 0,responseXML:void 0,status:function(){return this._xhr.status},statusText:function(){return this._xhr.statusText}}})})},"Ti/UI/EmailDialog":function(){define(["Ti/_","Ti/_/declare","Ti/_/Evented","Ti/_/lang"],function(i,k,c,j){return k("Ti.UI.EmailDialog",c,{open:function(){var c="mailto:"+(this.toRecipients||[]).join(","),f,e,b={subject:"subject",ccRecipients:"cc",bccRecipients:"bcc",messageBody:"body"},g={};for(f in b)if(e=this[f])require.is(e,
"Array")&&(e=e.join(",")),g[b[f]]=e;this.html||g.body&&(g.body=i.escapeHtmlEntities(g.body));g=j.urlEncode(g);location.href=c+(g?"?"+g:"");this.fireEvent("complete",{result:this.SENT,success:!0})},constants:{CANCELLED:0,FAILED:3,SAVED:1,SENT:2},properties:{bccRecipients:void 0,ccRecipients:void 0,html:!1,messageBody:void 0,subject:void 0,toRecipients:void 0}})})},"Ti/UI":function(){define(["Ti/_/Evented","Ti/_/lang","Ti/_/ready","Ti/_/style"],function(i,k,c,j){function h(){var a=0;e&&!window.location.hash&&
(document.height<=window.outerHeight+10&&(g(f,"height",window.outerHeight+60+"px"),a=50),setTimeout(function(){window.scrollTo(0,1);window.scrollTo(0,0);Ti.UI._recalculateLayout()},a))}var f=document.body,e=/(iPhone|iPad)/.test(navigator.userAgent),b={},g=j.set;f.addEventListener("touchmove",function(a){a.preventDefault()},!1);require.each("2DMatrix,ActivityIndicator,AlertDialog,Animation,Button,EmailDialog,ImageView,Label,OptionDialog,ScrollableView,ScrollView,Slider,Switch,Tab,TabGroup,TableView,TableViewRow,TableViewSection,TextArea,TextField,View,WebView,Window".split(","),
function(a){b["create"+a]=function(b){return new (require("Ti/UI/"+a))(b)}});e&&(c(h),window.addEventListener("orientationchange",h));c(10,function(){f.appendChild((Ti.UI._container=Ti.UI.createView({left:0,top:0})).domNode);g(Ti.UI._container.domNode,"overflow","hidden");Ti.UI._recalculateLayout()});require.on(window,"resize",function(){Ti.UI._recalculateLayout()});return k.setObject("Ti.UI",i,b,{_addWindow:function(a,b){this._container.add(a);b&&this._setWindow(a);return a},_setWindow:function(a){this.constants.currentWindow=
a},_removeWindow:function(a){this._container.remove(a);return a},_triggerLayout:function(a){a?(clearTimeout(this._layoutTimer),this._layoutMarkedNodes(this._container),this._layoutInProgress=!1):this._layoutInProgress||(this._layoutInProgress=!0,this._layoutTimer=setTimeout(k.hitch(this,function(){this._layoutMarkedNodes(this._container);this._layoutInProgress=!1;this._layoutTimer=null}),25))},_layoutMarkedNodes:function(a){if(a._markedForLayout)a._layout&&a._layout._doLayout(a,a._measuredWidth,a._measuredHeight);
else{for(var b in a.children)this._layoutMarkedNodes(a.children[b]);a._doAnimationAfterLayout&&(a._doAnimationAfterLayout=!1,a._doAnimation())}},_recalculateLayout:function(){this._container.width=window.innerWidth;this._container.height=window.innerHeight;this._container._doLayout(0,0,window.innerWidth,window.innerHeight,!0,!0)},properties:{backgroundColor:{set:function(a){return g(f,"backgroundColor",a)}},backgroundImage:{set:function(a){return g(f,"backgroundImage",a?j.url(a):"")}},currentTab:{get:function(){return(this.currentWindow||
{}).activeTab},set:function(a){return(this.currentWindow||{}).activeTab=a}}},constants:{currentWindow:void 0,UNKNOWN:0,FACE_DOWN:1,FACE_UP:2,PORTRAIT:3,UPSIDE_PORTRAIT:4,LANDSCAPE_LEFT:5,LANDSCAPE_RIGHT:6,INPUT_BORDERSTYLE_NONE:0,INPUT_BORDERSTYLE_LINE:1,INPUT_BORDERSTYLE_BEZEL:2,INPUT_BORDERSTYLE_ROUNDED:3,INPUT_BUTTONMODE_ALWAYS:1,INPUT_BUTTONMODE_NEVER:0,INPUT_BUTTONMODE_ONBLUR:0,INPUT_BUTTONMODE_ONFOCUS:1,KEYBOARD_APPEARANCE_ALERT:1,KEYBOARD_APPEARANCE_DEFAULT:0,KEYBOARD_ASCII:1,KEYBOARD_DEFAULT:2,
KEYBOARD_EMAIL:3,KEYBOARD_NAMEPHONE_PAD:4,KEYBOARD_NUMBERS_PUNCTUATION:5,KEYBOARD_NUMBER_PAD:6,KEYBOARD_PHONE_PAD:7,KEYBOARD_URL:8,NOTIFICATION_DURATION_LONG:1,NOTIFICATION_DURATION_SHORT:2,PICKER_TYPE_COUNT_DOWN_TIMER:1,PICKER_TYPE_DATE:2,PICKER_TYPE_DATE_AND_TIME:3,PICKER_TYPE_PLAIN:4,PICKER_TYPE_TIME:5,RETURNKEY_DEFAULT:0,RETURNKEY_DONE:1,RETURNKEY_EMERGENCY_CALL:2,RETURNKEY_GO:3,RETURNKEY_GOOGLE:4,RETURNKEY_JOIN:5,RETURNKEY_NEXT:6,RETURNKEY_ROUTE:7,RETURNKEY_SEARCH:8,RETURNKEY_SEND:9,RETURNKEY_YAHOO:10,
TEXT_ALIGNMENT_CENTER:1,TEXT_ALIGNMENT_RIGHT:2,TEXT_ALIGNMENT_LEFT:3,TEXT_AUTOCAPITALIZATION_ALL:3,TEXT_AUTOCAPITALIZATION_NONE:0,TEXT_AUTOCAPITALIZATION_SENTENCES:2,TEXT_AUTOCAPITALIZATION_WORDS:1,TEXT_VERTICAL_ALIGNMENT_BOTTOM:2,TEXT_VERTICAL_ALIGNMENT_CENTER:1,TEXT_VERTICAL_ALIGNMENT_TOP:3,ANIMATION_CURVE_EASE_IN:1,ANIMATION_CURVE_EASE_IN_OUT:2,ANIMATION_CURVE_EASE_OUT:3,ANIMATION_CURVE_LINEAR:4}})})},"Ti/_/analytics":function(){define(["Ti/_","Ti/_/dom","Ti/_/lang"],function(i,k,c){var j=window,
h="sessionStorage"in j&&sessionStorage.getItem("mobileweb_sessionId"),f=document,e=f.cookie.match(/(?:^|; )ti_mid=([^;]*)/),b=e?decodeURIComponent(e[1]):void 0,g=require.config,a=g.analytics,r=1,y=null;b||(b=localStorage.getItem("ti_mid"));b||localStorage.setItem("ti_mid",b=i.uuid());require.on(window,"beforeunload",function(){var a=new Date;a.setTime(a.getTime()+63072E7);f.cookie="ti_mid="+encodeURIComponent(b)+"; expires="+a.toUTCString();localStorage.setItem("ti_mid",b)});h||sessionStorage.setItem("mobileweb_sessionId",
h=i.uuid());return i.analytics={add:function(b,e,c,f){if(a){var g=localStorage.getItem("ti:analyticsEvents");now=new Date;tz=now.getTimezoneOffset();atz=Math.abs(tz);m=now.getMonth()+1;d=now.getDate();ts=now.getFullYear()+"-"+(10>m?"0"+m:m)+"-"+(10>d?"0"+d:d)+"T"+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+"."+now.getMilliseconds()+(0>tz?"-":"+")+(100>atz?"00":1E3>atz?"0":"")+atz;formatZeros=function(a,b){var e=(a+"").length;return(e<b?Array(++b-e).join("0"):"")+a};g=g?JSON.parse(g):
[];g.push({eventId:i.uuid(),eventType:b,eventEvent:e,eventTimestamp:ts,eventPayload:c});localStorage.setItem("ti:analyticsEvents",JSON.stringify(g));this.send(f)}},send:function(e){if(a){var i,l=JSON.parse(localStorage.getItem("ti:analyticsEvents"));i=(new Date).getTime();var q=[],o=[];if(!(null===l||!e&&null!==y&&3E5>i-y)){y=i;for(e=0;e<l.length;e++)i=l[e],o.push(i.eventId),q.push(JSON.stringify({seq:r++,ver:"2",id:i.eventId,type:i.eventType,event:i.eventEvent,ts:i.eventTimestamp,mid:b,sid:h,aguid:g.guid,
data:require.is(i.eventPayload,"object")?JSON.stringify(i.eventPayload):i.eventPayload}));var p=function(){var a,b,e,c=localStorage.getItem("ti:analyticsEvents"),f,g=[];for(a=0;a<c.length;a++){f=c[a];for(b=e=0;b<o.length;b++)if(f.eventId==o[b]){e=1;o.splice(b,1);break}e||g.push(f)}localStorage.setItem("ti:analyticsEvents",JSON.stringify(g))};if(require.has("analytics-use-xhr")){var v=new XmlHttpRequest;v.onreadystatechange=function(){if(4===v.readyState&&200===v.status)try{var a=eval("("+v.responseText+
")");a&&a.success&&p()}catch(b){}};v.open("POST","https://api.appcelerator.net/p/v2/mobileweb-track",!0);v.setRequestHeader("Content-Type","application/x-www-form-urlencoded");v.send(c.urlEncode({content:q}))}else{l=f.body;i=Math.floor(1E6*Math.random());e="analytics"+i;i="mobileweb_jsonp"+i;var s=k.create("iframe",{id:e,name:e,style:{display:"none"}},l),x=k.create("form",{action:"https://api.appcelerator.net/p/v2/mobileweb-track?callback="+i,method:"POST",style:{display:"none"},target:e},l);k.create("input",
{name:"content",type:"hidden",value:"["+q.join(",")+"]"},x);j[i]=function(a){a&&a.success&&p()};setTimeout(function(){function a(){k.destroy(x);k.destroy(s)}s.onload=a;s.onerror=a;x.submit()},25)}}}}}})},"Ti/UI/TabGroup":function(){define(["Ti/_/declare","Ti/_/css","Ti/_/UI/SuperView","Ti/UI"],function(i,k,c,j){var h=require.is;return i("Ti.UI.TabGroup",c,{constructor:function(){this.add(this._tabBarContainer=j.createView({width:"100%",height:"10%",layout:"horizontal",top:0,left:0}));this.add(this._tabContentContainer=
j.createView({width:"100%",height:"90%",left:0,top:"10%"}));this.tabs=[]},addTab:function(c){var e=this.tabs=this.tabs||[];e.push(c);c._tabGroup=this;this._tabBarContainer.add(c);this._setTabBarWidths(e);1==e.length&&(this.properties.activeTab=c)},removeTab:function(c){var e=this.tabs,b=this.tabs.indexOf(c);0<=b&&(e.splice(b,1),this._tabBarContainer.remove(c),this._setTabBarWidths(e),c===this._activeTab&&this._activateTab(e[0]))},_activateTab:function(c){var e=this.tabs,b=this._activeTab;b&&(b.active=
!1,k.remove(b.domNode,"TiActiveTab"),this._tabContentContainer.remove(b.window));k.add(c.domNode,"TiActiveTab");c.active=!0;this._activeTab=c;this._tabContentContainer.add(c.window);this._state={index:e.indexOf(c),previousIndex:b?e.indexOf(b):-1,previousTab:b,tab:c}},_setTabBarWidths:function(c){var e=100/c.length+"%",b;for(b in c)c[b]._tabWidth=e},_defaultWidth:"100%",_defaultHeight:"100%",properties:{activeTab:{set:function(c){if(h(c,"Number")){if(!c in this.tabs)return;c=this.tabs[c]}this._activateTab(c);
return c}},tabs:{set:function(c,e){var b,g=this._tabBarContainer;if(h(c,"Array")){for(b in e)g.remove(e[b]);if(c.length)for(b in this._setTabBarWidths(c),this._activateTab(c[0]),c)g.add(c[b]);return c}}}}})})},"Ti/UI/TableViewRow":function(){define("Ti/_/declare,Ti/_/lang,Ti/UI/View,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/UI".split(","),function(i,k,c,j,h,f,e){var b=f.set,g=k.isDef;checkImage="themes/titanium/UI/TableViewRow/check.png";childImage="themes/titanium/UI/TableViewRow/child.png";detailImage="themes/titanium/UI/TableViewRow/detail.png";
return i("Ti.UI.TableViewRow",c,{_indentionScale:10,constructor:function(){this.leftView=e.createView({left:0,top:0,width:"auto",height:"100%",layout:"horizontal"});b(this.leftView.domNode,"boxAlign","center");this.add(this.leftView);this.leftImageView=e.createImageView();this.leftView.add(this.leftImageView);this.titleLabel=e.createLabel({width:"auto",height:"100%"});this.leftView.add(this.titleLabel);this.add(this.rightImageView=e.createImageView({right:0,top:0,width:"auto",height:"100%"}))},_defaultHeight:"auto",
_defaultWidth:"100%",_tableRowHeight:void 0,_tableViewSection:null,_handleTouchEvent:function(a,b){if("click"===a||"singletap"===a)this._tableViewSection&&this._tableViewSection._tableView&&(this._tableViewSection._tableView._tableViewRowClicked=this);c.prototype._handleTouchEvent.apply(this,arguments)},_doLayout:function(){c.prototype._doLayout.apply(this,arguments)},_doBackground:function(a){this.titleLabel.color=this._touching?this.selectedColor:this.color;c.prototype._doBackground.apply(this,
arguments)},properties:{className:void 0,color:{set:function(a){return this.titleLabel.color=a}},hasCheck:{set:function(a,b){a!==b&&!g(this.rightImage)&&!this.hasChild&&(this.rightImageView.image=a?checkImage:void 0);return a}},hasChild:{set:function(a,b){a!==b&&!g(this.rightImage)&&(this.rightImageView.image=a?childImage:void 0);return a}},hasDetail:{set:function(a,b){a!==b&&!g(this.rightImage)&&!this.hasChild&&!this.hasCheck&&(this.rightImageView.image=a?detailImage:void 0);return a}},indentionLevel:{set:function(a){this.leftView.left=
a*this._indentionScale;return a},value:0},leftImage:{set:function(a){return this.leftImageView.image=a}},rightImage:{set:function(a,b){a!==b&&(this.rightImageView.image=a);return a}},selectedColor:void 0,title:{set:function(a){return this.titleLabel.text=a}},font:{set:function(a){return this.titleLabel.font=a}}}})})},"Ti/_/Layouts/Horizontal":function(){define(["Ti/_/Layouts/Base","Ti/_/declare"],function(i,k){return k("Ti._.Layouts.Horizontal",i,{_doLayout:function(c,i,h){var f={width:0,height:0},
e=0,b;for(b in c.children){var g=c.children[b];g._doLayout(e,0,i,h,!1,!1);e=g._measuredLeft+g._measuredWidth+2*g._measuredBorderWidth+g._measuredRightPadding;g=g._measuredTop+g._measuredHeight+2*g._measuredBorderWidth+g._measuredBottomPadding;e>f.width&&(f.width=e);g>f.height&&(f.height=g)}return f}})})},"Ti/UI/Button":function(){define("Ti/_/declare,Ti/_/UI/FontWidget,Ti/_/dom,Ti/_/style,Ti/_/lang,Ti/UI".split(","),function(i,k,c,j,h,f){var e=j.set,j={post:"_updateLook"};return i("Ti.UI.Button",
k,{domType:"button",constructor:function(){this._contentContainer=c.create("div",{className:"TiUIButtonContentContainer",style:{display:["-webkit-box","-moz-box"],boxOrient:"horizontal",boxPack:"center",boxAlign:"center",pointerEvents:"none"}},this.domNode);this._buttonImage=c.create("img",{className:"TiUIButtonImage",style:{pointerEvents:"none"}},this._contentContainer);this._buttonTitle=c.create("div",{className:"TiUIButtonTitle",style:{whiteSpace:"nowrap",pointerEvents:"none"}},this._contentContainer);
this._addStyleableDomNode(this._buttonTitle);this._setDefaultLook();this._disabledDimmer=c.create("div",{className:"TiUISwitchDisableDimmer",style:{pointerEvents:"none",opacity:0,backgroundColor:"white",width:"100%",height:"100%",position:"absolute",top:0,left:0}},this.domNode);this.addEventListener("touchstart",function(){this.selectedColor&&e(this._buttonTitle,"color",this.selectedColor)});this.addEventListener("touchend",function(){this.selectedColor&&e(this._buttonTitle,"color",this.color||"black")});
this.domNode.addEventListener("mouseout",h.hitch(this,function(){this.selectedColor&&e(this._buttonTitle,"color",this.color||"black")}))},_defaultWidth:"auto",_defaultHeight:"auto",_updateLook:function(){this.backgroundColor||this.backgroundDisabledColor||this.backgroundDisabledImage||this.backgroundFocusedColor||this.backgroundFocusedImage||this.backgroundImage||this.backgroundSelectedColor||this.backgroundSelectedImage?this._clearDefaultLook():this._setDefaultLook();this._doBackground()},_setDefaultLook:function(){this._hasDefaultLook||
(this._hasDefaultLook=!0,this.domNode.className+=" TiUIButtonDefault",this._previousBorderWidth=this.borderWidth,this._previousBorderColor=this.borderColor,this.borderWidth=1,this.borderColor="#aaa")},_clearDefaultLook:function(){if(this._hasDefaultLook){this._hasDefaultLook=!1;var b=this.domNode.className;this.domNode.className=b.substring(0,b.length-18);this.borderWidth=this._previousBorderWidth;this.borderColor=this._previousBorderColor;e(this._disabledDimmer,{opacity:0})}},_getContentWidth:function(){return this._buttonImage.width+
this._measureText(this.title,this._buttonTitle).width+(this._hasDefaultLook?20:0)},_getContentHeight:function(){return Math.max(this._buttonImage.height,this._measureText(this.title,this._buttonTitle).height)+(this._hasDefaultLook?20:0)},_setTouchEnabled:function(b){k.prototype._setTouchEnabled.apply(this,arguments);var c=b?"auto":"none";e(this._contentContainer,"pointerEvents",c);e(this._buttonImage,"pointerEvents",c);e(this._buttonTitle,"pointerEvents",c)},properties:{backgroundColor:j,backgroundDisabledColor:j,
backgroundDisabledImage:j,backgroundFocusedColor:j,backgroundFocusedImage:j,backgroundImage:j,backgroundSelectedColor:j,backgroundSelectedImage:j,color:{set:function(b){e(this._buttonTitle,"color",b);return b}},enabled:{set:function(b,c){b!==c&&(b?this._hasDefaultLook&&e(this._disabledDimmer,{opacity:0}):this._hasDefaultLook&&e(this._disabledDimmer,{opacity:0.5}),this._setTouchEnabled(b));return b},value:!0},image:{set:function(b){require.on(this._buttonImage,"load",h.hitch(this,function(){this._hasAutoDimensions()&&
this._triggerLayout()}));return this._buttonImage.src=b}},selectedColor:void 0,textAlign:{set:function(b){var c="";switch(b){case f.TEXT_ALIGNMENT_LEFT:c="start";break;case f.TEXT_ALIGNMENT_CENTER:c="center";break;case f.TEXT_ALIGNMENT_RIGHT:c="end"}e(this._contentContainer,"boxPack",c);return b}},title:{set:function(b){this._buttonTitle.innerHTML=b;this._hasAutoDimensions()&&this._triggerParentLayout();return b}},titleid:{get:function(b){console.debug('Property "Titanium.UI.Button#.titleid" is not implemented yet.');
return b},set:function(b){console.debug('Property "Titanium.UI.Button#.titleid" is not implemented yet.');return b}}}})})},"Ti/Media/VideoPlayer":function(){define(["Ti/_/declare","Ti/Media","Ti/UI/View"],function(i,k,c){var j=require.on,h,f={m4v:"video/mp4",mov:"video/quicktime",mp4:"video/mp4",ogg:"video/ogg",ogv:"video/ogg",webm:"video/webm"};return i("Ti.Media.VideoPlayer",c,{_currentState:0,constructor:function(){this._handles=[]},properties:{autoplay:!1,currentPlaybackTime:{get:function(){return this._video?
1E3*this._video.currentTime:0},set:function(c){this._video&&(this._video.currentTime=c/1E3|0);return c}},fullscreen:{value:function(c){return c&&c()}(document.createElement("video").webkitDisplayingFullscreen),set:function(c){var b,f=this._video,c=!!c;if(h)try{c?f.webkitEnterFullscreen():f.webkitExitFullscreen()}catch(a){}else f.className=c?"fullscreen":"",c&&(b=j(window,"keydown",function(a){27===a.keyCode&&(this.fullscreen=0,b())}));this.fireEvent("fullscreen",{entering:c});return c}},mediaControlStyle:{value:k.VIDEO_CONTROL_DEFAULT,
set:function(c){this._video&&(this._video.controls=c===k.VIDEO_CONTROL_DEFAULT);return c}},repeatMode:k.VIDEO_REPEAT_MODE_NONE,scalingMode:{set:function(c){var b=this.domNode,f=k.VIDEO_SCALING_ASPECT_FIT,a={};a[k.VIDEO_SCALING_NONE]="TiScalingNone";a[f]="TiScalingAspectFit";b.className=b.className.replace(/(scaling\-[\w\-]+)/,"")+" "+(a[c]||a[c=f]);return c}},url:{set:function(c){this.constants.playing=!1;this._currentState=0;this.properties.__values__.url=c;this._createVideo();return c}}},constants:{playbackState:k.VIDEO_PLAYBACK_STATE_STOPPED,
playing:!1,initialPlaybackTime:0,endPlaybackTime:0,playableDuration:0,loadState:k.VIDEO_LOAD_STATE_UNKNOWN,duration:0},_set:function(c,b){var f={};f[c]=this.constants[c]=b;this.fireEvent("loadState"===c?c.toLowerCase():c,f)},_complete:function(c){c="ended"===c.type;this.constants.playing=!1;this._currentState=0;this.fireEvent("complete",{reason:c?k.VIDEO_FINISH_REASON_PLAYBACK_ENDED:k.VIDEO_FINISH_REASON_USER_EXITED});c&&this.repeatMode===k.VIDEO_REPEAT_MODE_ONE&&setTimeout(function(){this._video.play()},
1)},_stalled:function(){this._set("loadState",k.VIDEO_LOAD_STATE_STALLED)},_fullscreenChange:function(){this.fullscreen&&(this.fullscreen=!_fullscreen)},_metaDataLoaded:function(){h=this._video.webkitSupportsFullscreen;this._durationChange()},_durationChange:function(){var c=1E3*this._video.duration,b=this.constants;Infinity!==c&&(this.duration||this.fireEvent("durationAvailable",{duration:c}),b.duration=b.playableDuration=b.endPlaybackTime=c)},_paused:function(){var c=k.VIDEO_PLAYBACK_STATE_STOPPED;
this.constants.playing=!1;3===this._currentState?(this._currentState=2,c=k.VIDEO_PLAYBACK_STATE_PAUSED):1===this._currentState&&(this._video.currentTime=0);this._set("playbackState",c)},_createVideo:function(c){var b,g,a=this._video,h=this.url;if(h){if(c&&a&&a.parentNode)return a;this.release();a=this._video=document.createElement("video");a.tabindex=0;this.mediaControlStyle===k.VIDEO_CONTROL_DEFAULT&&(a.controls=1);this.scalingMode=k.VIDEO_SCALING_ASPECT_FIT;this._handles=[j(a,"playing",this,function(){this._currentState=
3;this.constants.playing=!0;this.fireEvent("playing",{url:a.currentSrc});this._set("playbackState",k.VIDEO_PLAYBACK_STATE_PLAYING)}),j(a,"pause",this,"_paused"),j(a,"canplay",this,function(){this._set("loadState",k.VIDEO_LOAD_STATE_PLAYABLE);0===this._currentState&&this.autoplay&&a.play()}),j(a,"canplaythrough",this,function(){this._set("loadState",k.VIDEO_LOAD_STATE_PLAYTHROUGH_OK);this.fireEvent("preload")}),j(a,"loadeddata",this,function(){this.fireEvent("load")}),j(a,"loadedmetadata",this,"_metaDataLoaded"),
j(a,"durationchange",this,"_durationChange"),j(a,"timeupdate",this,function(){this.constants.currentPlaybackTime=1E3*this._video.currentTime;1===this._currentState&&this.pause()}),j(a,"error",this,function(){var b="Unknown error";switch(a.error.code){case 1:b="Aborted";break;case 2:b="Decode error";break;case 3:b="Network error";break;case 4:b="Unsupported format"}this.constants.playing=!1;this._set("loadState",k.VIDEO_LOAD_STATE_UNKNOWN);this.fireEvent("error",{message:b});this.fireEvent("complete",
{reason:k.VIDEO_FINISH_REASON_PLAYBACK_ERROR})}),j(a,"abort",this,"_complete"),j(a,"ended",this,"_complete"),j(a,"stalled",this,"_stalled"),j(a,"waiting",this,"_stalled"),j(a,"mozfullscreenchange",this,"_fullscreenChange"),j(a,"webkitfullscreenchange",this,"_fullscreenChange")];this.domNode.appendChild(a);require.is(h,"Array")||(h=[h]);for(c=0;c<h.length;c++)b=document.createElement("source"),b.src=h[c],(g=h[c].match(/.+\.([^\/\.]+?)$/))&&f[g[1]]&&(b.type=f[g[1]]),a.appendChild(b);return a}},play:function(){3!==
this._currentState&&this._createVideo(1).play()},pause:function(){3===this._currentState&&this._createVideo(1).pause()},release:function(){var c=this._video,b=c&&c.parentNode;b&&(require.each(this._handles,function(b){b()}),this._handles=[],b.removeChild(c));this._video=null},stop:function(){this._currentState=1;this._video.pause();this._video.currentTime=0}})})},"Ti/Media":function(){define(["Ti/_/Evented","Ti/_/lang"],function(i,k){return k.setObject("Ti.Media",i,{constants:{UNKNOWN_ERROR:0,DEVICE_BUSY:1,
NO_CAMERA:2,NO_VIDEO:3,VIDEO_CONTROL_DEFAULT:1,VIDEO_CONTROL_EMBEDDED:1,VIDEO_CONTROL_FULLSCREEN:2,VIDEO_CONTROL_NONE:0,VIDEO_CONTROL_HIDDEN:0,VIDEO_SCALING_NONE:0,VIDEO_SCALING_ASPECT_FILL:2,VIDEO_SCALING_ASPECT_FIT:1,VIDEO_SCALING_MODE_FILL:3,VIDEO_PLAYBACK_STATE_STOPPED:0,VIDEO_PLAYBACK_STATE_PLAYING:1,VIDEO_PLAYBACK_STATE_PAUSED:2,VIDEO_LOAD_STATE_PLAYABLE:1,VIDEO_LOAD_STATE_PLAYTHROUGH_OK:2,VIDEO_LOAD_STATE_STALLED:4,VIDEO_LOAD_STATE_UNKNOWN:0,VIDEO_REPEAT_MODE_NONE:0,VIDEO_REPEAT_MODE_ONE:1,
VIDEO_FINISH_REASON_PLAYBACK_ENDED:0,VIDEO_FINISH_REASON_PLAYBACK_ERROR:1,VIDEO_FINISH_REASON_USER_EXITED:2},beep:function(){console.debug('Method "Titanium.Media.beep" is not implemented yet.')},createAudioPlayer:function(){console.debug('Method "Titanium.Media.createAudioPlayer" is not implemented yet.')},createAudioRecorder:function(){console.debug('Method "Titanium.Media.createAudioRecorder" is not implemented yet.')},createItem:function(){console.debug('Method "Titanium.Media.createItem" is not implemented yet.')},
createSound:function(){console.debug('Method "Titanium.Media.createSound" is not implemented yet.')},createVideoPlayer:function(c){return new (require("Ti/Media/VideoPlayer"))(c)}})})},"Ti/_/text":function(){define(function(){var i={};return{dynamic:!0,normalize:function(i,c){var j=i.split("!"),h=j[0];j.shift();return(/^\./.test(h)?c(h):h)+(j.length?"!"+j.join("!"):"")},load:function(k,c,j){k=c.toUrl(k);c=i[k]||c.cache(k);if(!c)if(c=new XMLHttpRequest,c.open("GET",k,!1),c.send(null),200===c.status)c=
c.responseText;else throw Error('Failed to load text "'+k+'": '+c.status);j(c)}}})},"Ti/UI/MobileWeb/TableViewSeparatorStyle":function(){define("Ti/UI/MobileWeb/TableViewSeparatorStyle",["Ti/_/lang"],function(i){return i.setObject("Ti.UI.MobileWeb.TableViewSeparatorStyle",{},{constants:{NONE:0,SINGLE_LINE:1}})})},"Ti/_/Gestures/Swipe":function(){define(["Ti/_/declare","Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.Swipe",c,{name:"swipe",_touchStartLocation:null,
_distanceThresholdPassed:!1,_distanceThreshold:25,_angleThreshold:Math.PI/12,processTouchStartEvent:function(c){1==c.touches.length&&1==c.changedTouches.length?(this._distanceThresholdPassed=!1,this._touchStartLocation={x:c.changedTouches[0].clientX,y:c.changedTouches[0].clientY}):this._touchStartLocation=null},processTouchEndEvent:function(c,h){0==c.touches.length&&1==c.changedTouches.length&&this._processSwipeEvent(c,h,!0);this._touchStartLocation=null},processTouchMoveEvent:function(c,h){1==c.touches.length&&
1==c.changedTouches.length&&this._processSwipeEvent(c,h,!1)},processTouchCancelEvent:function(){this._touchStartLocation=null},_processSwipeEvent:function(c,h,f){var e=c.changedTouches[0].clientX,c=c.changedTouches[0].clientY;if(this._touchStartLocation){var b=Math.abs(this._touchStartLocation.x-e),g=Math.abs(this._touchStartLocation.y-c),a=Math.sqrt(Math.pow(this._touchStartLocation.x-e,2)+Math.pow(this._touchStartLocation.y-c,2));!this._distanceThresholdPassed&&(this._distanceThresholdPassed=a>
this._distanceThreshold);this._distanceThresholdPassed&&((a=a<=this._distanceThreshold||0===b||0===g?!0:b>g?Math.atan(g/b)<this._angleThreshold:Math.atan(b/g)<this._angleThreshold)?h._isGestureBlocked(this.name)||(b=b>g?0<this._touchStartLocation.x-e?"left":"right":0<this._touchStartLocation.y-c?"down":"up",("left"===b||"right"===b)&&k.hitch(h,h._handleTouchEvent(this.name,{x:e,y:c,direction:b,_distance:e-this._touchStartLocation.x,_finishedSwiping:f}))):this._touchStartLocation=null)}}})})},"Ti/_/Gestures/TouchEnd":function(){define(["Ti/_/declare",
"Ti/_/lang","Ti/_/Gestures/GestureRecognizer"],function(i,k,c){return i("Ti._.Gestures.TouchEnd",c,{name:"touchend",processTouchEndEvent:function(c,h){if(!h._isGestureBlocked(this.name))for(var f=0;f<c.changedTouches.length;f++)k.hitch(h,h._handleTouchEvent(this.name,{x:c.changedTouches[f].clientX,y:c.changedTouches[f].clientY}))}})})},"Ti/_/ready":function(){define(function(){function i(b,c,a){var e,f,i;require.is(b,"Number")||(a=c,c=b,b=1E3);e=a?function(){a.call(c)}:c;if(j)e();else{e.priority=
b;for(f=0,i=h.length;f<i&&b>=h[f].priority;f++);h.splice(f,0,e)}}var k=document,c={loaded:1,complete:1},j=!!c[k.readyState],h=[];if(!j){var f=function(b){if(!(j||b&&"readystatechange"==b.type&&!c[k.readyState])){for(;h.length;)h.shift()();j=1}};h.concat([require.on(k,"DOMContentLoaded",f),require.on(window,"load",f)]);if("onreadystatechange"in k)h.push(require.on(k,"readystatechange",f));else{var e=function(){c[k.readyState]?f():setTimeout(e,30)};e()}}i.load=function(b,c,a){i(a)};return i})},"url:Ti/_/UI/WebViewBridge.js":'var a,b,w=window,p=w.parent,u=w.onunload;p&&p.Ti&&(a=p.Ti.API,b=p.Ti.App,Ti={API:{log:a.log,debug:a.debug,error:a.error,info:a.info,warn:a.warn},App:{addEventListener:b.addEventListener,removeEventListener:b.removeEventListener,fireEvent:b.fireEvent}});w.onunload=function(){Ti.App.fireEvent("WEBVIEW_ID");u&&u()};',
"Ti/_/include":function(){define(function(){var i={},k=[];return{dynamic:!0,normalize:function(c,i){var h=c.split("!"),f=h[0];h.shift();return(/^\./.test(f)?i(f):f)+(h.length?"!"+h.join("!"):"")},load:function(c,j,h){var f;f=c.split("!");var e;if(e=1<f.length&&"sandbox"===f[0])f.shift(),c=f.join("!");c=j.toUrl(/^\//.test(c)?c:"./"+c,k.length?{name:k[k.length-1]}:null);f=i[c]||j.cache(c);if(!f)if(f=new XMLHttpRequest,f.open("GET",c,!1),f.send(null),200===f.status)f=f.responseText;else throw Error('Failed to load include "'+
c+'": '+f.status);k.push(c);try{j.evaluate(i[c]=f,0,!e)}catch(b){throw b;}finally{k.pop()}h(f)}}})}});require("Ti,Ti/App/Properties,Ti/Facebook,Ti/Filesystem,Ti/Media/VideoPlayer,Ti/Network/HTTPClient,Ti/Platform/DisplayCaps,Ti/UI/2DMatrix,Ti/UI/ActivityIndicator,Ti/UI/AlertDialog,Ti/UI/Animation,Ti/UI/Button,Ti/UI/EmailDialog,Ti/UI/ImageView,Ti/UI/Label,Ti/UI/OptionDialog,Ti/UI/ScrollView,Ti/UI/ScrollableView,Ti/UI/Slider,Ti/UI/Switch,Ti/UI/Tab,Ti/UI/TabGroup,Ti/UI/TableView,Ti/UI/TableViewRow,Ti/UI/TableViewSection,Ti/UI/TextArea,Ti/UI/TextField,Ti/UI/WebView,Ti/UI/Window,Ti/Utils,Ti/XML,Ti/_/text,Ti/_/text!Ti/_/UI/WebViewBridge.js".split(","));
==FORMATTED==
var require = {
    analytics : !0,
    app : {
        copyright : "2012 by nle",
        description : "not specified",
        guid : "bf0a38a2-135a-4462-9b23-ca9764741d80",
        id : "dddd",
        name : "dddd",
        publisher : "nle",
        url : "http://",
        version : "1.0"
    },
    deployType : "production",
    has : {
        "analytics-use-xhr" : !1,
        "declare-property-methods" : !0,
        "json-stringify" : function() {
            return "JSON" in window && "[object Function]" == JSON.toString() && '{"a":1}' !== JSON.stringify({
                a : 0
            }, function(i, k) {
                return k || 1
            })
        },
        "object-defineproperty" : function() {
            var i;
            var k = Object.defineProperty, c = {};
            try {
                k && k(c, "x", {}), i = c.hasOwnProperty("x")
            } catch(j) {
            }
            return i
        },
        opera : "undefined" === typeof opera || "[object Opera]" != opera.toString()
    },
    packages : [{
        location : "./titanium",
        main : "./Ti",
        name : "Ti"
    }],
    project : {
        id : "ddd.ddd",
        name : "dddd"
    },
    ti : {
        buildHash : "59b3a90",
        buildDate : "02/23/12 17:46",
        version : "1.8.2"
    },
    vendorPrefixes : {
        css : ",-webkit-,-moz-,-ms-,-o-,-khtml-".split(","),
        dom : ",Webkit,Moz,ms,O,Khtml".split(",")
    }
};
(function(i) {
    function k(a) {
        var b = 1;
        for (a || ( a = {}); b < arguments.length; ) {
            var g = a, e = arguments[b++], f =
            void 0;
            for (f in e)e.hasOwnProperty(f) && (g[f] = e[f])
        }
        return a
    }

    function c(a, b) {
        var g = 0, e = a && a.length || 0, f = Array.prototype.slice.call(arguments, 0);
        for (f.shift(); g < e; )
            f[0] = a[g++], b.apply(null, f)
    }

    function j(a, b) {
        var g = (
        void 0 === a ? "" : {}.toString.call(a)).match(/^\[object (.+)\]$/), g = g ? g[1] : "Undefined";
        return b ? b === g : g
    }

    function h(a) {
        for (var b in a)
        break;
        return !a || !a.call && !b
    }

    function f(a, b, g) {
        var e, f = [], r = [];
        if (g)
            a = i.eval(a);
        else {
            for (e in b)f.push(e + "=__vars." + e), r.push(e + ":" + e);
            a = (new Function("__vars", (f.length ? "var " + f.join(",") + ";\n" : "") + a + "\n;return {" + r.join(",") + "};"))(b)
        }
        return "_firebugIgnore" === a ? null : a
    }

    function e(a) {
        for (var b = [], g, e, a = a.replace(/\\/g, "/").split("/"); a.length; )
            g = a.shift(), ".." === g && b.length && ".." !== e ? (b.pop(), e = b[b.length - 1]) : "." !== g && b.push( e = g);
        return b.join("/")
    }

    function b(a) {
        j(E[a], "Function") && (E[a] = E[a](i, v, s));
        return E[a]
    }

    function g(a, b, g, e) {
        var f = j(e, "Function") ? function() {
            return e.apply(g, arguments)
        } : j(e, "String") ? function() {
            return g[e].apply(g, arguments)
        } : g;
        a.addEventListener(b, f, !1);
        return function() {
            a.removeEventListener(b, f, !1)
        }
    }

    function a(a, b) {
        a = a.name ? a : {
            name : a
        };
        a.location = (/(^\/)|(\:)/.test(b) ? b : "") + (a.location || a.name);
        a.main = (a.main || "main").replace(/(^\.\/)|(\.js$)/, "")
    }

    function r(a, b, g, f) {
        function r() {
            var a = Array.prototype.slice.call(arguments, 0);
            1 < a.length || (a[1] = 0);
            a[2] = l;
            return o.apply(null, a)
        }

        var c = a && a.match(t), j = A.test(a), h = C.test(a), y = {}, i = null, u, n, p = H, l = this;
        l.name = a;
        l.deps = g || [];
        l.plugin = null;
        l.callbacks = [];
        if (!c && (h || j && !b))
            l.url = a;
        else if (c)
            l.plugin = l.deps.length, l.pluginArgs = c[2], l.pluginCfg = B[c[1]], l.deps.push(c[1]);
        else if (a) {
            a = l.name = e(( j ? b.name + "/../" : "") + a);
            if (A.test(a))
                throw Error('Irrational path "' + a + '"');
            if ( c = a.match(J))
                for ( g = 0, j = B.packages.length, u = c[1]; g < j; g++)
                    if ( n = B.packages[g], n.name === u) {
                        i = u;
                        /\/$/.test( g = n.location) || (g += "/");
                        p += e(g + (c[2] ? a : n.main));
                        break
                    }
            if (!i || !c && h)
                i = "", p += a;
            l.url = p + ".js"
        }
        l.pkg = i;
        l.rawDef = f;
        l.loaded = !!f;
        l.refModule = b;
        r.toUrl = function() {
            var a = Array.prototype.slice.call(arguments, 0);
            null === l.plugin && (a[1] = l);
            return q.apply(null, a)
        };
        k(r, L, {
            cache : o.cache
        });
        l.cjs = {
            require : r,
            exports : y,
            module : {
                exports : y
            }
        }
    }

    function y(a, b, g, e, f, c) {
        b = new r(a, b, g, e);
        g = b.name;
        return a in b.cjs ? (b.def = b.cjs[a], b.loaded = b.executed = 1, b) : f || !g ? b : !D[g] || !D[g].executed || c ? D[g] = b : D[g]
    }

    function u(a) {
        var b, g = F.slice(0);
        for ( F = []; g.length; )
            b = g.shift(), b.name || (b.name = a.name), b.name === a.name ? (D[b.name] = a, a.deps = b.deps, a.rawDef = b.rawDef, a.refModule = b.refModule, a.execute()) : (D[b.name] = b, b.execute());
        delete G[a.name]
    }

    function w(a, b, g, e) {
        var f, r, c, h = j(a, "String");
        h && ( a = [a], e = 1);
        for ( f = 0, r = c = a.length; f < r; f++)
            a[f] && function(f) {
                y(a[f], g).load(!!e, function(g) {
                    g.execute(function() {
                        a[f] = g.def;
                        0 === --c && (b(a), c = -1)
                    })
                })
            }(f);
        0 === c && b(a);
        return h ? a[0] : a
    }

    function l(a, b, g) {
        var e = ["require"];
        g || ( g = b || a, 1 === g.length || e.concat(["exports", "module"]), "string" !== typeof a ? ( b = b ? a : e, a = 0) : b = e);
        if (z.test(a))
            throw Error('Not allowed to define reserved module id "' + a + '"');
        j(g, "Function") && 1 === arguments.length && g.toString().replace(x, "").replace(n, function(a, g) {
            b.push(g)
        });
        e = y(a, 0, b, g, 0, 1);
        if (a && !G[a])
            e.execute();
        else if (a || !h(G))
            F.push(e);
        else
            throw Error("Unable to define anonymous module");
    }

    function q(a, b) {
        var g = a.match(/(.+)(\.[^\/\.]+?)$/), e = y(g && g[1] || a, b, 0, 0, 1), f = e.url;
        null !== e.pkg && ( f = f.substring(0, f.length - 3));
        return f + (g && g[2] || "")
    }

    function o(a, b, g) {
        return w(a, function(a) {
            b && b.apply(null, a)
        }, g) || o
    }

    var p, v = i.document, s = v.createElement("div"), x = /(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg, n = /[^.]require\(\s*["']([^'"\s]+)["']\s*\)/g, z = /exports|module/, t = /^(.+?)\!(.*)$/, C = /(^\/)|(\:)|(\.js$)/, A = /^\./, J = /([^\/]+)\/?(.*)/, K = /^url\:(.+)/, B = i.require || {}, M = B.packagePaths || {}, H = B.baseUrl || "./", E = B.hasCache || {}, F = [], I = {}, G = {}, D = {}, L;
    b.add = function(a, g, e, f) {
        if (
            void 0 === E[a] || f)
            E[a] = g;
        return e && b(a)
    };
    g.once = function(a, b, e) {
        var f = g(a, b, function() {
            f && f();
            return e.apply(this, arguments)
        });
        return f
    };
    /\/$/.test(H) || (H += "/");
    c(B.packages, a);
    for (p in M)c(M[p], a, p + "/");
    for (p in B.has)
    b.add(p, B.has[p], 0, !0);
    r.prototype.load = function(a, b) {
        var e, r, y, k = this;
        e = I[k.name];
        var o = function() {
            c(k.callbacks, function(a) {
                a(k)
            });
            k.callbacks = []
        }, n = function(a) {
            k.loaded = 1;
            if (k.rawDef = a)
                j(a, "String") ? /\.js$/.test(k.url) ? ( a = f(a, k.cjs), k.def = k.rawDef = !h(a.exports) ? a.exports : a.module && !h(a.module.exports) ? a.module.exports : null, null === k.def && (k.rawDef = a)) : (k.def = a, k.executed = 1) : j(a, "Function") && (G[k.name] = k, a());
            u(k);
            o();
            return 1
        };
        k.sync = a;
        b && k.callbacks.push(b);
        if (k.executed || !k.url)
            k.loaded = 1, o();
        else if (!G[k.name]) {
            if (k.loaded || e)
                return n(e);
            G[k.name] = k;
            if (a) {
                r = new XMLHttpRequest;
                r.open("GET", k.url, !1);
                r.send(null);
                if (200 === r.status)
                    return n(r.responseText);
                throw Error('Failed to load module "' + k.name + '": ' + r.status);
            }
            r = k.node = v.createElement("script");
            r.type = "text/javascript";
            r.charset = "utf-8";
            r.async = !0;
            y = g(r, "load", function(a) {
                var a = a || i.event, b = a.target || a.srcElement;
                if ("load" === a.type || /complete|loaded/.test(b.readyState))
                    y(), n()
            });
            r.src = k.url;
            e = v.getElementsByTagName("script")[0];
            e.parentNode.insertBefore(r, e)
        }
    };
    r.prototype.execute = function(a) {
        var b = this;
        b.executed ? a && a() : w(b.deps, function(g) {
            var e, r = b.rawDef, c = F.slice(0);
            F = [];
            b.def = b.def || r && (j(r, "String") ? f(r, b.cjs) : j(r, "Function") ? r.apply(null, g) : j(r, "Object") ? function(a, b) {
                for (var g in b)
                this[g] = b[g];
                return a
            }.call({}, r, b.cjs) : null) || b.cjs.exports;
            u(b);
            F = c;
            null !== b.plugin && ( e = g[b.plugin], e.dynamic &&
            delete D[b.name], e.load && e.load(b.pluginArgs, b.cjs.require, function(g) {
                b.def = g;
                b.executed = 1;
                a && a()
            }, b.pluginCfg));
            if (!e || !e.load)
                b.executed = 1, a && a()
        }, b.refModule, b.sync)
    };
    l.amd = {
        plugins : !0,
        vendor : "titanium"
    };
    o.toUrl = q;
    o.config = B;
    k(o, L = {
        each : c,
        evaluate : f,
        has : b,
        is : j,
        mix : k,
        on : g
    });
    o.cache = function(a) {
        var b, g;
        if (j(a, "String"))
            return I[a];
        for (b in a)( g = b.match(K)) ? I[q(g[1])] = a[b] : ( g = y(b, 0, 0, a[b], 1), I[g.name] = g.rawDef)
    };
    i.require = o;
    i.define = l
})(window);
require.cache({
    "Ti/UI/TableView" : function() {
        define("Ti/_/declare,Ti/UI/View,Ti/_/style,Ti/_/lang,Ti/UI/MobileWeb/TableViewSeparatorStyle,Ti/UI".split(","), function(i, k, c, j, h, f) {
            var e = c.set, b = require.is, g = j.isDef;
            return i("Ti.UI.TableView", k, {
                constructor : function() {
                    function a() {
                        return g._header._measuredHeight + g._sections._measuredHeight + g._footer._measuredHeight
                    }

                    var b = this._contentContainer = f.createView({
                        width : "100%",
                        height : "100%",
                        left : 0,
                        top : 0,
                        layout : "vertical"
                    });
                    this.add(b);
                    e(b.domNode, "overflow", "hidden");
                    b.add(this._header = f.createView({
                        height : "auto",
                        layout : "vertical"
                    }));
                    b.add(this._sections = f.createView({
                        height : "auto",
                        layout : "vertical"
                    }));
                    b.add(this._footer = f.createView({
                        height : "auto",
                        layout : "vertical"
                    }));
                    this.data = [];
                    this._createVerticalScrollBar();
                    var g = this, c;
                    this.addEventListener("touchstart", function(g) {
                        c = g.y;
                        this._startScrollBars({
                            y : b.domNode.scrollTop / (a() - this._measuredHeight)
                        }, {
                            y : b._measuredHeight / a()
                        })
                    });
                    this.addEventListener("touchend", function(a) {
                        c = null;
                        this._endScrollBars();
                        this._isScrollBarActive && this.fireEvent("scrollEnd", {
                            contentOffset : {
                                x : 0,
                                y : b.domNode.scrollTop + this._header._measuredHeight
                            },
                            contentSize : {
                                width : this._sections._measuredWidth,
                                height : this._sections._measuredHeight
                            },
                            size : {
                                width : this._measuredWidth,
                                height : this._measuredHeight
                            },
                            x : a.x,
                            y : a.y
                        })
                    });
                    this.addEventListener("touchmove", j.hitch(this, function(g) {
                        b.domNode.scrollTop += c - g.y;
                        c = g.y;
                        this._updateScrollBars({
                            y : b.domNode.scrollTop / (a() - this._measuredHeight)
                        });
                        this._fireScrollEvent(g.x, g.y)
                    }));
                    this.domNode.addEventListener("mousewheel", function(e) {
                        g._startScrollBars({
                            y : b.domNode.scrollTop / (a() - g._measuredHeight)
                        }, {
                            y : b._measuredHeight / a()
                        });
                        setTimeout(function() {
                            b.domNode.scrollLeft -= e.wheelDeltaX;
                            b.domNode.scrollTop -= e.wheelDeltaY;
                            g._updateScrollBars({
                                y : (b.domNode.scrollTop - e.wheelDeltaY) / (a() - g._measuredHeight)
                            });
                            setTimeout(function() {
                                g._endScrollBars()
                            }, 10)
                        }, 10)
                    });
                    require.on(b.domNode, "scroll", j.hitch(this, function() {
                        this._touching || this._fireScrollEvent()
                    }))
                },
                _fireScrollEvent : function(a, b) {
                    for (var g, e = 0, f = this._contentContainer.scrollTop, c = this._sections.children, j = 0; j < c.length; j += 2) {
                        var h = c[j], k = h._measuredTop - f;
                        if (0 < h._measuredTop + h._measuredHeight - f && k < this._contentContainer._measuredHeight)
                            for (var k = h._rows.children, i = 1; i < k.length; i += 2) {
                                var s = k[i], x = s._measuredTop + h._measuredTop - f;
                                0 < s._measuredTop + s._measuredHeight + h._measuredTop - f && x < this._contentContainer._measuredHeight && (e++, g || ( g = s))
                            }
                    }
                    this._isScrollBarActive && this.fireEvent("scroll", {
                        contentOffset : {
                            x : 0,
                            y : this._contentContainer.scrollTop
                        },
                        contentSize : {
                            width : this._sections._measuredWidth,
                            height : this._sections._measuredHeight
                        },
                        firstVisibleItem : g,
                        size : {
                            width : this._contentContainer._measuredWidth,
                            height : this._contentContainer._measuredHeight
                        },
                        totalItemCount : this.data.length,
                        visibleItemCount : e,
                        x : a,
                        y : b
                    })
                },
                _defaultWidth : "100%",
                _defaultHeight : "100%",
                _getContentOffset : function() {
                    return {
                        x : this._contentContainer.scrollLeft,
                        y : this._contentContainer.scrollTop
                    }
                },
                _handleTouchEvent : function(a, b) {
                    if ("click" === a || "singletap" === a) {
                        b.row = this._tableViewRowClicked;
                        b.rowData = this._tableViewRowClicked;
                        for (var g = 0, e = this._sections.children, f = 0; f < e.length; f += 2) {
                            var c = e[f]._rows.children.indexOf(this._tableViewRowClicked);
                            if (-1 !== c) {
                                g += Math.floor(c / 2);
                                break
                            } else
                                g += e[f].rowCount
                        }
                        b.index = g;
                        b.section = this._tableViewSectionClicked;
                        b.searchMode = !1
                    }
                    k.prototype._handleTouchEvent.apply(this, arguments)
                },
                _tableViewRowClicked : null,
                _tableViewSectionClicked : null,
                _createSeparator : function() {
                    return f.createView({
                        height : 1,
                        width : "100%",
                        backgroundColor : "white"
                    })
                },
                _createDecorationLabel : function(a) {
                    return f.createLabel({
                        text : a,
                        backgroundColor : "darkGrey",
                        color : "white",
                        width : "100%",
                        height : "auto",
                        left : 0,
                        font : {
                            fontSize : 22
                        }
                    })
                },
                _refreshSections : function() {
                    for (var a = 0; a < this._sections.children.length; a += 2)
                        this._sections.children[a]._refreshRows();
                    this._triggerLayout()
                },
                _calculateLocation : function(a) {
                    for (var b = 0, g, e = 0; e < this._sections.children.length; e += 2)
                        if ( g = this._sections.children[e], b += g.rowCount, a < b)
                            return {
                                section : g,
                                localIndex : g.rowCount - (b - a)
                            };
                    if (a == b)
                        return {
                            section : g,
                            localIndex : g.rowCount
                        }
                },
                _insert : function(a, b) {
                    var g = this._calculateLocation(b);
                    g && g.section.add(a, g.localIndex);
                    this._refreshSections()
                },
                _remove : function(a) {
                    ( a = this._calculateLocation(a)) && a.section._removeAt(a.localIndex)
                },
                appendRow : function(a) {
                    this._currentSection.add(a);
                    this._refreshSections()
                },
                deleteRow : function(a) {
                    this._remove(a)
                },
                insertRowAfter : function(a, b) {
                    this._insert(b, a + 1)
                },
                insertRowBefore : function(a, b) {
                    this._insert(b, a)
                },
                updateRow : function(a, b) {
                    this._remove(a);
                    this._insert(b, a)
                },
                scrollToIndex : function(a) {
                    if ( a = this._calculateLocation(a))
                        this._contentContainer.scrollTop = a.section._measuredTop + a.section._rows.children[2 * a.localIndex + 1]._measuredTop
                },
                scrollToTop : function(a) {
                    this._contentContainer.scrollTop = a
                },
                properties : {
                    data : {
                        set : function(a) {
                            if (b(a, "Array")) {
                                this._sections._removeAllChildren();
                                for (var e in a)
                                if (!g(a[e].declaredClass) || "Ti.UI.TableViewRow" != a[e].declaredClass && "Ti.UI.TableViewSection" != a[e].declaredClass)
                                    a[e] = f.createTableViewRow(a[e]);
                                0 == a.length && (this._sections.add(this._currentSection = f.createTableViewSection({
                                    _tableView : this
                                })), this._sections.add(this._createSeparator()));
                                for ( e = 0; e < a.length; e++)
                                    "Ti.UI.TableViewRow" === a[e].declaredClass ? (0 === e && (this._sections.add(this._currentSection = f.createTableViewSection({
                                        _tableView : this
                                    })), this._sections.add(this._createSeparator())), this._currentSection.add(a[e])) : "Ti.UI.TableViewSection" === a[e].declaredClass && (a[e]._tableView = this, this._sections.add(this._currentSection = a[e]), this._sections.add(this._createSeparator()));
                                this._refreshSections();
                                return a
                            }
                        }
                    },
                    footerTitle : {
                        set : function(a, b) {
                            b != a && (this._footer._removeAllChildren(), this._footer.add(this._createDecorationLabel(a)));
                            return a
                        }
                    },
                    footerView : {
                        set : function(a, b) {
                            b != a && (this._footer._removeAllChildren(), this._footer.add(a));
                            return a
                        }
                    },
                    headerTitle : {
                        set : function(a, b) {
                            b != a && (this._header._removeAllChildren(), this._header.add(this._createDecorationLabel(a)), this._header.add(this._createSeparator()));
                            return a
                        }
                    },
                    headerView : {
                        set : function(a, b) {
                            b != a && (this._header._removeAllChildren(), this._header.add(a));
                            return a
                        }
                    },
                    maxRowHeight : {
                        post : function(a) {
                            this._refreshSections();
                            return a
                        },
                        value : "100%"
                    },
                    minRowHeight : {
                        post : function(a) {
                            this._refreshSections();
                            return a
                        },
                        value : "0%"
                    },
                    rowHeight : {
                        post : function(a) {
                            this._refreshSections();
                            return a
                        },
                        value : "50px"
                    },
                    separatorColor : {
                        post : function(a) {
                            this._refreshSections();
                            return a
                        },
                        value : "lightGrey"
                    },
                    separatorStyle : {
                        post : function(a) {
                            this._refreshSections();
                            return a
                        },
                        value : h.SINGLE_LINE
                    }
                }
            })
        })
    },
    "Ti/_/Gestures/TwoFingerTap" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.TwoFingerTap", c, {
                name : "twofingertap",
                _touchStartLocation : null,
                _touchEndLocation : null,
                _fingerDifferenceThresholdTimer : null,
                _fingerDifferenceThreshold : 100,
                _driftThreshold : 25,
                processTouchStartEvent : function(c) {
                    var h = c.changedTouches[0].clientX, f = c.changedTouches[0].clientY, e = c.touches.length, b = c.changedTouches.length;
                    1 == e && 1 == b ? (this._touchStartLocation = [{
                        x : h,
                        y : f
                    }], this._fingerDifferenceThresholdTimer = setTimeout(k.hitch(this, function() {
                        this._touchStartLocation = null
                    }), this._fingerDifferenceThreshold)) : 2 == e && 1 == b ? (clearTimeout(this._fingerDifferenceThresholdTimer), this._touchStartLocation && this._touchStartLocation.push({
                        x : h,
                        y : f
                    })) : this._touchStartLocation = 2 == e && 2 == b ? [{
                        x : h,
                        y : f
                    }, {
                        x : c.changedTouches[1].clientX,
                        y : c.changedTouches[1].clientY
                    }] : null
                },
                processTouchEndEvent : function(c, h) {
                    var f = c.changedTouches[0].clientX, e = c.changedTouches[0].clientY, b = c.touches.length, g = c.changedTouches.length;
                    if (1 == b && 1 == g)
                        this._touchEndLocation = [{
                            x : f,
                            y : e
                        }], this._fingerDifferenceThresholdTimer = setTimeout(k.hitch(this, function() {
                            this._touchStartLocation = null
                        }), this._fingerDifferenceThreshold);
                    else if (0 == b && (1 == g || 2 == g)) {
                        if (this._touchStartLocation && 2 == this._touchStartLocation.length) {
                            for ( b = 0; b < g; b++)
                                this._touchEndLocation.push({
                                    x : f,
                                    y : e
                                });
                            f = Math.abs(this._touchStartLocation[0].x - this._touchEndLocation[0].x) < this._driftThreshold && Math.abs(this._touchStartLocation[0].y - this._touchEndLocation[0].y) < this._driftThreshold;
                            e = Math.abs(this._touchStartLocation[1].x - this._touchEndLocation[1].x) < this._driftThreshold && Math.abs(this._touchStartLocation[1].y - this._touchEndLocation[1].y) < this._driftThreshold;
                            if (!f || !e)
                                f = Math.abs(this._touchStartLocation[0].x - this._touchEndLocation[1].x) < this._driftThreshold && Math.abs(this._touchStartLocation[0].y - this._touchEndLocation[1].y) < this._driftThreshold, e = Math.abs(this._touchStartLocation[1].x - this._touchEndLocation[0].x) < this._driftThreshold && Math.abs(this._touchStartLocation[1].y - this._touchEndLocation[0].y) < this._driftThreshold;
                            f && e && !h._isGestureBlocked(this.name) && (this.blocking.push("singletap"), this.blocking.push("doubletap"), this.blocking.push("longpress"), k.hitch(h, h._handleTouchEvent(this.name, {
                                x : (this._touchStartLocation[0].x + this._touchStartLocation[1].x) / 2,
                                y : (this._touchStartLocation[0].y + this._touchStartLocation[1].y) / 2
                            })));
                            this._touchStartLocation = null
                        }
                    } else
                        this._touchStartLocation = null
                },
                finalizeTouchEndEvent : function() {
                    this.blocking = []
                },
                processTouchCancelEvent : function() {
                    this._touchStartLocation = null
                }
            })
        })
    },
    "Ti/API" : function() {
        define(["Ti/_/Evented", "Ti/_/lang"], function(i, k) {
            var c = {};
            require.each(["debug", "error", "info", "log", "warn"], function(j) {
                c[j] = function(c) {
                    console[j]("[" + j.toUpperCase() + "]", c)
                }
            });
            return k.setObject("Ti.API", i, c)
        })
    },
    "Ti/_/UI/Widget" : function() {
        define(["Ti/_/declare", "Ti/UI/View"], function(i, k) {
            return i("Ti._.UI.Widget", k)
        })
    },
    "Ti/_/declare" : function() {
        define(["Ti/_", "Ti/_/lang"], function(i, k) {
            function c(b, a) {
                for (var e = [], c = [{
                    cls : 0,
                    refs : []
                }], j = {}, h = 1, k = b.length, i = 0, o, p, v, s, x; i < k; ++i) {
                    if ( o = b[i]) {
                        if (!f(o, "Function"))
                            throw Error('Base class not a function for "' + a + '" [' + i + "]");
                    } else
                        throw Error('Unknown base class for "' + a + '" [' + i + "]");
                    p = o._meta ? o._meta.bases : [o];
                    v = 0;
                    for ( o = p.length - 1; 0 <= o; --o)
                        s = p[o].prototype, s.hasOwnProperty("declaredClass") || (s.declaredClass = "uniqName_" + counter++), s = s.declaredClass, j.hasOwnProperty(s) || (j[s] = {
                            count : 0,
                            refs : [],
                            cls : p[o]
                        }, ++h), s = j[s], v && v !== s && (s.refs.push(v), ++v.count), v = s;
                    ++v.count;
                    c[0].refs.push(v)
                }
                for (; c.length; ) {
                    v = c.pop();
                    e.push(v.cls);
                    for (--h; x = v.refs, 1 == x.length; ) {
                        v = x[0];
                        if (!v || --v.count) {
                            v = 0;
                            break
                        }
                        e.push(v.cls);
                        --h
                    }
                    if (v)
                        for ( i = 0, k = x.length; i < k; ++i)
                            v = x[i], --v.count || c.push(v)
                }
                if (h)
                    throw Error("Can't build consistent linearization for " + a + '"');
                o = b[0];
                e[0] = o ? o._meta && o === e[e.length - o._meta.bases.length] ? o._meta.bases.length : 1 : 0;
                return e
            }

            function j(g, a) {
                return function() {
                    var e = arguments, c = e, j = e[0], h, i, q;
                    q = g.length;
                    var o;
                    i = this.declaredClass;
                    b[i] || (b[i] = 0);
                    this.widgetId = i + ":" + b[i]++;
                    if (a && (j && j.preamble || this.preamble)) {
                        o = Array(g.length);
                        o[0] = e;
                        for ( i = 0; ; ) {
                            ( j = e[0]) && ( h = j.preamble) && ( e = h.apply(this, e) || e);
                            h = g[i].prototype;
                            ( h = h.hasOwnProperty("preamble") && h.preamble) && ( e = h.apply(this, e) || e);
                            if (++i === q)
                                break;
                            o[i] = e
                        }
                    }
                    for ( i = q - 1; 0 <= i; --i) {
                        h = g[i];
                        if ( q = h._meta)
                            h = q.ctor, k.mixProps(this, q.hidden);
                        f(h, "Function") && h.apply(this, o ? o[i] : e)
                    }
                    if (f(j, "Object"))
                        for (i in h = this.constants, j)j.hasOwnProperty(i) && ((h&&i in h?h.__values__:this)[i] = j[i]);
                    ( h = this.postscript) && h.apply(this, c)
                }
            }

            function h(b, a) {
                for (var e in a)a.hasOwnProperty(e) && !/^(constructor|properties|constants|__values__)$/.test(e) && (f(a[e], "Function") && (a[e].nom = name), b[e] = a[e]);
                return b
            }

            var f = require.is, e = require.mix, b = {};
            return i.declare = function(b, a, r) {
                f(b, "String") || ( r = a, a = b, b = "");
                var r = r || {}, i = [r.constructor], u, w;
                w = 1;
                var l = {};
                u = f(a);
                "Array" === u ? ( i = c(a, b), a = i[ w = i.length - i[0]]) : "Function" === u ? ( u = a._meta, i = i.concat( u ? u.bases : a)) : "Object" === u ? ( u = new Function, e(u.prototype, a), i[0] = a = u) : a = 0;
                if (a)
                    for (w -= 1; ; --w) {
                        u = new Function;
                        u.prototype = a.prototype;
                        l = new u;
                        if (!w)
                            break;
                        u = i[w];
                        (u._meta ? h : e)(l, u.prototype);
                        u = new Function;
                        u.superclass = a;
                        u.prototype = l;
                        a = l.constructor = u
                    }
                h(l, r);
                u = r.constructor;
                u !== Object.prototype.constructor && (u.nom = "constructor", l.constructor = u);
                e(i[0] = u = j(i, u), {
                    _meta : {
                        bases : i,
                        hidden : r,
                        ctor : r.constructor
                    },
                    superclass : a && a.prototype,
                    extend : function(a) {
                        h(this.prototype, a);
                        return this
                    },
                    prototype : l
                });
                e(l, {
                    constructor : u,
                    isInstanceOf : function(a) {
                        for (var b = this.constructor._meta.bases, g = 0, e = b.length; g < e; ++g)
                            if (b[g] === a)
                                return !0;
                        return this instanceof a
                    }
                });
                b && (l.declaredClass = b, k.setObject(b, u));
                return u
            }
        })
    },
    "Ti/_/Gestures/DoubleTap" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.DoubleTap", c, {
                name : "doubletap",
                _firstTapTime : null,
                _firstTapLocation : null,
                _timeThreshold : 250,
                _driftThreshold : 25,
                initTracker : function(c, h) {
                    this._firstTapTime = (new Date).getTime();
                    this._firstTapLocation = {
                        x : c,
                        y : h
                    }
                },
                processTouchEndEvent : function(c, h) {
                    if (0 == c.touches.length && 1 == c.changedTouches.length) {
                        var f = c.changedTouches[0].clientX, e = c.changedTouches[0].clientY;
                        if (this._firstTapTime) {
                            var b = (new Date).getTime() - this._firstTapTime;
                            this._firstTapTime = null;
                            b < this._timeThreshold && Math.abs(this._firstTapLocation.x - f) < this._driftThreshold && Math.abs(this._firstTapLocation.y - e) < this._driftThreshold ? ( f = {
                                x : f,
                                y : e
                            }, h._isGestureBlocked(this.name) || (this.blocking.push("singletap"), k.hitch(h, h._handleTouchEvent("dblclick", f)), k.hitch(h, h._handleTouchEvent(this.name, f)))) : this.initTracker(f, e)
                        } else
                            this.initTracker(f, e)
                    }
                },
                finalizeTouchEndEvent : function() {
                    this.blocking = []
                },
                processTouchCancelEvent : function() {
                    this._firstTapTime = null
                }
            })
        })
    },
    "Ti/_/lang" : function() {
        define(function() {
            function i(f, e) {
                return [].concat(Array.prototype.slice.call(f, e || 0))
            }

            function k(f, e) {
                var b = i(arguments, 2);
                named = h(e, "String");
                return function() {
                    var g = f || c, a = named ? g[e] : e;
                    return a && a.apply(g, b.concat(i(arguments)))
                }
            }

            var c = this, j, h = require.is;
            return {
                hitch : j = function(f, e) {
                    if (2 < arguments.length)
                        return k.apply(c, arguments);
                    e || ( e = f, f = null);
                    if (h(e, "String")) {
                        f = f || c;
                        if (!f[e])
                            throw ['hitch: scope["', e, '"] is null (scope="', f, '")'].join("");
                        return function() {
                            return f[e].apply(f, arguments || [])
                        }
                    }
                    return !f ? e : function() {
                        return e.apply(f, arguments || [])
                    }
                },
                isDef : function(f) {
                    return !h(f, "Undefined")
                },
                mixProps : function(f, e, b) {
                    var g, a, c, i = {
                        properties : 1,
                        constants : 0
                    };
                    for (c in e)
                    if (e.hasOwnProperty(c) && !/^(constructor|__values__)$/.test(c))
                        if ( c in i)
                            for (a in g = f[c] || (f[c] = {}), g.__values__ || (g.__values__ = {}), e[c])(function(a, b, g, e, c, r, i) {
                                var k = h(c, "Object"), y = k && h(c.get, "Function") && c.get, n = k && h(c.set, "Function") && c.set, z = k && h(c.post), t = "Function" === z ? c.post : "String" === z ? j(b, c.post) : 0;
                                k && (y || n || t) ? e[a] = c.value : h(c, "Function") ? y = c : e[a] = c;
                                Object.defineProperty(g, a, {
                                    get : function() {
                                        return y ? y.call(b, e[a]) : e[a]
                                    },
                                    set : function(g) {
                                        var f = [g, e[a]];
                                        f[0] = e[a] = n ? n.apply(b, f) : g;
                                        t && t.apply(b, f)
                                    },
                                    configurable : !0,
                                    enumerable : !0
                                });
                                Object.defineProperty(f, a, {
                                    get : function() {
                                        return g[a]
                                    },
                                    set : function(b) {
                                        if (!i)
                                            throw Error('Property "' + a + '" is read only');
                                        g[a] = b
                                    },
                                    configurable : !0,
                                    enumerable : !0
                                });
                                if (require.has("declare-property-methods") && (i || a.toUpperCase() !== a))
                                    b["get" + r] = function() {
                                        return g[a]
                                    }, i && (b["set" + r] = function(b) {
                                        return g[a] = b
                                    })
                            })(a, f, g, g.__values__, e[c][a], a.substring(0, 1).toUpperCase() + a.substring(1), i[c]);
                        else
                            b && (f[c] = e[c]);
                    return f
                },
                setObject : function(f) {
                    var e = f.split("."), b = e.pop(), g = window, a = 0, c = e[a++];
                    if (c) {
                        do
                            g = c in g ? g[c] : g[c] = {};
                        while(g&&(c=e[a++]))
                    }
                    if (g && b) {
                        b = b in g ? g[b] : g[b] = {};
                        for ( a = 1; a < arguments.length; a++)
                            h(arguments[a], "Object") ? this.mixProps(b, arguments[a], 1) : b = arguments[a];
                        return b
                    }
                },
                toArray : i,
                urlEncode : function(f) {
                    var e = encodeURIComponent, b = [], g, a;
                    for (g in f)f.hasOwnProperty(g) && (h( a = f[g], "Array") || ( a = [a]), g = e(g) + "=", require.each(a, function(a) {
                        b.push(g + e(a))
                    }));
                    return b.join("&")
                },
                val : function(f, e) {
                    return h(f, "Undefined") ? e : f
                }
            }
        })
    },
    "Ti/UI/AlertDialog" : function() {
        define(["Ti/_/declare", "Ti/_/Evented", "Ti/UI"], function(i, k, c) {
            return i("Ti.UI.AlertDialog", k, {
                show : function() {
                    function j(a, g, f) {
                        a = c.createButton({
                            left : 5,
                            right : 5,
                            top : 5,
                            bottom : f,
                            height : "auto",
                            title : a,
                            index : g
                        });
                        g === b.cancel && (a.domNode.className += " TiUIButtonCancel");
                        e.add(a);
                        a.addEventListener("singletap", function() {
                            h.close();
                            b._alertWindow =
                            void 0;
                            b.fireEvent("click", {
                                index : g,
                                cancel : b.cancel === g
                            })
                        })
                    }

                    var h = this._alertWindow = c.createWindow(), f = c.createView({
                        backgroundColor : "black",
                        opacity : 0,
                        left : 0,
                        top : 0,
                        right : 0,
                        bottom : 0
                    });
                    h.add(f);
                    var e = c.createView({
                        width : "50%",
                        height : "auto",
                        backgroundColor : "white",
                        layout : "vertical",
                        borderRadius : 3,
                        opacity : 0
                    });
                    h.add(e);
                    e.add(c.createLabel({
                        text : this.title,
                        font : {
                            fontWeight : "bold"
                        },
                        left : 5,
                        right : 5,
                        top : 5,
                        height : "auto",
                        textAlign : c.TEXT_ALIGNMENT_CENTER
                    }));
                    e.add(c.createLabel({
                        text : this.message,
                        left : 5,
                        right : 5,
                        top : 5,
                        height : "auto",
                        textAlign : c.TEXT_ALIGNMENT_CENTER
                    }));
                    var b = this;
                    if (require.is(this.buttonNames, "Array"))
                        for (var g = this.buttonNames, a = 0; a < g.length; a++)
                            j(g[a], a, a === g.length - 1 ? 5 : 0);
                    else
                        j(this.ok, 0, 5);
                    h.open();
                    setTimeout(function() {
                        f.animate({
                            opacity : 0.5,
                            duration : 200
                        }, function() {
                            e.animate({
                                opacity : 1,
                                duration : 200
                            })
                        })
                    }, 30)
                },
                hide : function() {
                    this._alertWindow && this._alertWindow.close()
                },
                properties : {
                    buttonNames :
                    void 0,
                    cancel : -1,
                    message : "",
                    messageid : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.AlertDialog#.messageid" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.AlertDialog#.messageid" is not implemented yet.');
                            return c
                        }
                    },
                    ok : "OK",
                    okid : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.AlertDialog#.okid" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.AlertDialog#.okid" is not implemented yet.');
                            return c
                        }
                    },
                    title : "",
                    titleid : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.AlertDialog#.titleid" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.AlertDialog#.titleid" is not implemented yet.');
                            return c
                        }
                    }
                }
            })
        })
    },
    "Ti/_/UI/TextBox" : function() {
        define("Ti/_/declare,Ti/_/dom,Ti/_/event,Ti/_/style,Ti/_/lang,Ti/_/UI/FontWidget,Ti/UI".split(","), function(i, k, c, j, h, f, e) {
            return i("Ti._.UI.TextBox", f, {
                _field : null,
                _preventDefaultTouchEvent : !1,
                _initTextBox : function() {
                    var b = this._field;
                    this._form = k.create("form", null, this.domNode);
                    this._addStyleableDomNode(this._setFocusNode(b));
                    require.on(b, "keydown", this, function(a) {
                        this.editable ? 13 === a.keyCode && (this.suppressReturn && (c.stop(a), b.blur()), this.fireEvent("return")) : c.stop(a)
                    });
                    require.on(b, "keypress", this, function() {
                        this._capitalize()
                    });
                    var g = null, a = "";
                    require.on(b, "focus", this, function() {
                        g = setInterval(h.hitch(this, function() {
                            var g = b.value, e = !1;
                            a.length != g.length ? e = !0 : a != g && ( e = !0);
                            e && (this.fireEvent("change"), a = g)
                        }), 200)
                    });
                    require.on(b, "blur", this, function() {
                        clearInterval(g)
                    })
                },
                _capitalize : function(b) {
                    var g = this._field, b = "off";
                    switch(b||this.autocapitalization) {
                        case e.TEXT_AUTOCAPITALIZATION_ALL:
                            g.value = g.value.toUpperCase();
                            break;
                        case e.TEXT_AUTOCAPITALIZATION_SENTENCES:
                            b = "on"
                    }
                    this._field.autocapitalize = b
                },
                blur : function() {
                    this._field.blur();
                    this.fireEvent("blur")
                },
                focus : function() {
                    this._field.focus();
                    this.fireEvent("focus")
                },
                hasText : function() {
                    return !this._field.value.length
                },
                properties : {
                    autocapitalization : {
                        value : e.TEXT_AUTOCAPITALIZATION_SENTENCES,
                        set : function(b, g) {
                            b !== g && this._capitalize(b);
                            return b
                        }
                    },
                    autocorrect : {
                        value : !1,
                        set : function(b) {
                            this._field.autocorrect = b ? "on" : "off";
                            return b
                        }
                    },
                    editable : !0,
                    returnKeyType : {
                        value : e.RETURNKEY_DEFAULT,
                        set : function(b) {
                            var g = "", a = this.domNode;
                            b !== e.RETURNKEY_DEFAULT && ( deset = this._form, -1 !== [4, 8, 10].indexOf(b) && ( g = "Search"));
                            this._field.title = g;
                            k.place(this._field, a);
                            return b
                        }
                    },
                    suppressReturn : !0,
                    textAlign : {
                        set : function(b) {
                            j.set(this._field, "text-align", b === e.TEXT_ALIGNMENT_RIGHT ? "right" : b === e.TEXT_ALIGNMENT_CENTER ? "center" : "left");
                            return b
                        }
                    },
                    value : {
                        get : function() {
                            return this._field.value
                        },
                        set : function(b) {
                            return this._capitalize(this._field.value = b)
                        },
                        value : ""
                    }
                }
            })
        })
    },
    "Ti/_/css" : function() {
        define(["Ti/_", "Ti/_/string"], function(i, k) {
            function c(c, h, f) {
                for (var e = 0, b, g = " " + c.className + " ", h = require.is(h, "Array") ? h : h.split(" "); e < h.length; e++)
                    b = g.indexOf(" " + h[e] + " "), f && -1 === b ? g += h[e] + " " : !f && -1 !== b && ( g = g.substring(0, b) + g.substring(b + h[e].length + 1));
                c.className = k.trim(g)
            }
            return i.css = {
                add : function(j, h) {
                    c(j, h, 1)
                },
                remove : function(j, h) {
                    c(j, h)
                },
                clean : function(c) {
                    return c.replace(/[^A-Za-z0-9\-]/g, "")
                }
            }
        })
    },
    "Ti/Network" : function() {
        define(["Ti/_/Evented", "Ti/_/lang"], function(i, k) {
            var c = navigator.connection, j = navigator.onLine, h = k.setObject("Ti.Network", i, {
                constants : {
                    INADDR_ANY : null,
                    NETWORK_LAN : 1,
                    NETWORK_MOBILE : 3,
                    NETWORK_NONE : 0,
                    NETWORK_UNKNOWN : -1,
                    NETWORK_WIFI : 2,
                    NOTIFICATION_TYPE_ALERT : 0,
                    NOTIFICATION_TYPE_BADGE : 1,
                    NOTIFICATION_TYPE_SOUND : 2,
                    READ_MODE : 0,
                    READ_WRITE_MODE : 2,
                    WRITE_MODE : 1,
                    networkType : function() {
                        return !j ? h.NETWORK_NONE : c && c.type == c.WIFI ? h.NETWORK_WIFI : c && c.type == c.ETHERNET ? h.NETWORK_LAN : c && (c.type == c.CELL_2G || c.type == c.CELL_3G) ? h.NETWORK_MOBILE : h.NETWORK_UNKNOWN
                    },
                    networkTypeName : function() {
                        return !j ? "NONE" : c && c.type == c.WIFI ? "WIFI" : c && c.type == c.ETHERNET ? "LAN" : c && (c.type == c.CELL_2G || c.type == c.CELL_3G) ? "MOBILE" : "UNKNOWN"
                    },
                    online : function() {
                        return j
                    }
                },
                properties : {
                    httpURLFormatter : null
                },
                createHTTPClient : function(f) {
                    return new (require("Ti/Network/HTTPClient"))(f)
                },
                decodeURIComponent : function(f) {
                    return decodeURIComponent(f)
                },
                encodeURIComponent : function(f) {
                    return encodeURIComponent(f)
                }
            });
            require.on(window, "online", function(f) {
                j || ( j = !0, h.fireEvent("change", {
                    networkType : h.networkType,
                    networkTypeName : h.networkTypeName,
                    online : !0,
                    source : f.target,
                    type : f.type
                }))
            });
            require.on(window, "offline", function(f) {
                j && ( j = !1, h.fireEvent("change", {
                    networkType : h.networkType,
                    networkTypeName : h.networkTypeName,
                    online : !1,
                    source : f.target,
                    type : f.type
                }))
            })
        })
    },
    "Ti/_/browser" : function() {
        define(["Ti/_"], function(i) {
            var k = navigator.userAgent.toLowerCase().match(/(webkit|gecko|trident|presto)/);
            return i.browser = {
                runtime : k ? k[0] : "unknown"
            }
        })
    },
    "Ti/_/Gestures/LongPress" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.LongPress", c, {
                name : "longpress",
                _timer : null,
                _touchStartLocation : null,
                _timeThreshold : 500,
                _driftThreshold : 25,
                processTouchStartEvent : function(c, h) {
                    clearTimeout(this._timer);
                    1 == c.touches.length && 1 == c.changedTouches.length && (this._touchStartLocation = {
                        x : c.changedTouches[0].clientX,
                        y : c.changedTouches[0].clientY
                    }, this._timer = setTimeout(k.hitch(this, function() {
                        h._isGestureBlocked(this.name) || (this.blocking.push("singletap"), this.blocking.push("doubletap"), k.hitch(h, h._handleTouchEvent("longpress", {
                            x : c.changedTouches[0].clientX,
                            y : c.changedTouches[0].clientY
                        })))
                    }), this._timeThreshold))
                },
                processTouchEndEvent : function(c) {
                    0 == c.touches.length && 1 == c.changedTouches.length && clearTimeout(this._timer)
                },
                finalizeTouchEndEvent : function() {
                    this.blocking = []
                },
                processTouchMoveEvent : function(c) {
                    (!this._touchStartLocation || Math.abs(this._touchStartLocation.x - c.changedTouches[0].clientX) > this._driftThreshold || Math.abs(this._touchStartLocation.y - c.changedTouches[0].clientY) > this._driftThreshold) && clearTimeout(this._timer)
                },
                processTouchCancelEvent : function() {
                    clearTimeout(this._timer)
                }
            })
        })
    },
    "Ti/UI/TextArea" : function() {
        define("Ti/_/declare,Ti/_/UI/TextBox,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/UI".split(","), function(i, k, c, j, h) {
            return i("Ti.UI.TextArea", k, {
                domType : "textarea",
                constructor : function() {
                    h.set(this._field = this.domNode, {
                        width : "100%",
                        height : "100%"
                    });
                    this._initTextBox()
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                _getContentWidth : function() {
                    return this._measureText(this.value, this.textArea).width
                },
                _getContentHeight : function() {
                    return this._measureText(this.value, this.textArea).height
                },
                _setTouchEnabled : function(f) {
                    k.prototype._setTouchEnabled.apply(this, arguments);
                    this.slider && h.set(this.textArea, "pointerEvents", f ? "auto" : "none")
                }
            })
        })
    },
    "Ti/XML" : function() {
        define("Ti/XML", ["Ti/_/Evented"], function() {
            (function(i) {
                function k() {
                    var e = [];
                    Ti._5.prop(this, "length", {
                        get : function() {
                            return e.length
                        }
                    });
                    this.item = function(b) {
                        return e[b]
                    };
                    this.add = function(b) {
                        e.push(b)
                    };
                    this.remove = function(b) {
                        for (var g = e.length; g--; )
                            b == e[g] && e.splice(g, 1)
                    }
                }

                function c(e) {
                    e.evaluate = function(b) {
                        tempXPathResult = f.parseFromString(h(e), "text/xml");
                        var b = tempXPathResult.evaluate(b, tempXPathResult, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null), g = new k, a = null;
                        if (b)
                            for (; a = b.iterateNext(); )
                                g.add(j(a));
                        return g
                    };
                    return e
                }

                function j(e) {
                    e.nodeValue || (e.nodeValue = e);
                    e.text || (e.text = e.nodeValue);
                    return c(e)
                }

                function h(e) {
                    if ("undefined" != typeof e.outerHTML)
                        return e.outerHTML;
                    if ("undefined" != typeof XMLSerializer)
                        return (new XMLSerializer).serializeToString(e);
                    if (e.xml)
                        return e.xml;
                    var b = document.createElement("div");
                    b.appendChild(e);
                    return b.innerHTML
                }
                Ti._5.EventDriven(i);
                var f = new DOMParser;
                i.DOMDocument = null;
                i.parseString = function(e) {
                    domDocument = f.parseFromString(e.replace(/>\s*</gi, "><"), "text/xml");
                    var b = domDocument.firstChild || domDocument, b = c(b);
                    b.documentElement = c(domDocument.documentElement);
                    b.getElementsByTagName = function(g) {
                        return b.parentNode ? b.parentNode.getElementsByTagName(g) : b.getElementsByTagName(g)
                    };
                    return i.DOMDocument = b
                };
                i.serializeToString = function(e) {
                    if ("array" != typeof e && "[object NodeList]" !== e.toString())
                        return h(e);
                    for (var b = "", g = 0; g < e.length; g++)
                        b += h(e[g]);
                    return b
                }
            })(Ti._5.createClass("Ti.XML"))
        })
    },
    "Ti/UI/2DMatrix" : function() {
        define(["Ti/_/declare", "Ti/_/Evented", "Ti/Platform", "Ti/UI"], function(i, k, c, j) {
            function h(b, g, a) {
                var e = 0 == g ? 1 : 0, g = 2 == g ? 1 : 2, f = 0 == b ? 1 : 0, b = 2 == b ? 1 : 2;
                return a[f][e] * a[b][g] - a[f][g] * a[b][e]
            }

            function f(b, g, a, e, f, c, h, j) {
                return {
                    a : b.a * g + b.b * e,
                    b : b.a * a + b.b * f,
                    c : b.c * g + b.d * e,
                    d : b.c * a + b.d * f,
                    tx : b.a * c + b.b * h + b.tx,
                    ty : b.c * c + b.d * h + b.ty,
                    rotation : b.rotation + j
                }
            }

            var e = "gecko" === c.runtime;
            return i("Ti.UI.2DMatrix", k, {
                properties : {
                    a : 1,
                    b : 0,
                    c : 0,
                    d : 1,
                    tx : 0,
                    ty : 0,
                    rotation : 0
                },
                constructor : function(b) {
                    b && require.mix(this, b)
                },
                invert : function() {
                    var b = 0, g = 0, a = [[this.a, this.b, this.tx], [this.c, this.d, this.ty], [0, 0, 1]], e = this.a * h(0, 0, a) - this.b * h(0, 1, a) + this.tx * h(0, 2, a);
                    if (1.0E-10 < Math.abs(e))
                        for ( e = 1 / e; 3 > g; g++)
                            for (; 3 > b; b++)
                                a[g][b] = h(b, g, a) * e, 1 == (b + g) % 2 && (a[g][b] = -a[g][b]);
                    return new j["2DMatrix"](f(this, a[0][0], a[0][1], a[1][0], a[1][1], a[0][2], a[1][2]))
                },
                multiply : function(b) {
                    return new j["2DMatrix"](f(this, b.a, b.b, b.c, b.d, b.tx, b.ty, b.rotation))
                },
                rotate : function(b) {
                    return new j["2DMatrix"]({
                        a : this.a,
                        b : this.b,
                        c : this.c,
                        d : this.d,
                        tx : this.tx,
                        ty : this.ty,
                        rotation : this.rotation + b
                    })
                },
                scale : function(b, g) {
                    return new j["2DMatrix"](f(this, b, 0, 0, g, 0, 0))
                },
                translate : function(b, g) {
                    return new j["2DMatrix"](f(this, 0, 0, 0, 0, b, g))
                },
                toCSS : function() {
                    for (var b = 0, g = [this.a, this.b, this.c, this.d, this.tx, this.ty]; 6 > b; b++)
                        g[b] = g[b].toFixed(6), 4 < b && (g[b] = e ? g[b] + "px" : g[b]);
                    return "matrix(" + g.join(",") + ") rotate(" + this.rotation + "deg)"
                }
            })
        })
    },
    Ti : function() {
        define("Ti/_,Ti/_/analytics,Ti/App,Ti/_/Evented,Ti/_/lang,Ti/_/ready,Ti/_/style,Ti/Platform,Ti/_/include".split(","), function(i, k, c, j, h, f, e, b) {
            var g = window, a = require.config, i = a.ti.version, r = require.is, y = require.each, u = require.has, w = h.setObject("Ti", j, {
                constants : {
                    buildDate : a.ti.buildDate,
                    buildHash : a.ti.buildHash,
                    version : i
                },
                properties : {
                    userAgent : "Appcelerator Titanium/" + i + " (" + navigator.userAgent + ")!"
                },
                include : function(a) {
                    "array" === typeof a || ( a = [].concat(Array.prototype.slice.call(arguments, 0)));
                    y(a, function(a) {
                        require("Ti/_/include!" + a)
                    })
                }
            });
            u.add("devmode", "development" === a.deployType);
            if (!u("object-defineproperty")) {
                var l = Object.defineProperty;
                Object.defineProperty = function(a, b, g) {
                    if (!a || !r(a, "Object") && !r(a, "Function") && !r(a, "Window"))
                        throw new TypeError("Object.defineProperty called on non-object: " + a);
                    g = g || {};
                    if (!g || !r(g, "Object") && !r(g, "Function"))
                        throw new TypeError("Property description must be an object: " + g);
                    if (l)
                        try {
                            return l.call(Object, a, b, g)
                        } catch(e) {
                        }
                    var f = Object.prototype, c = f.hasOwnProperty("__defineGetter__"), h = a.__proto__;
                    if (g.hasOwnProperty("value"))
                        c && (a.__lookupGetter__(b) || a.__lookupSetter__(b)) ? (a.__proto__ = f,
                        delete a[b], a[b] = g.value, a.__proto__ = h) : a[b] = g.value;
                    else {
                        if (!c)
                            throw new TypeError("Getters and setters can not be defined on this javascript engine");
                        g.hasOwnProperty("get") && defineGetter(a, b, g.get);
                        g.hasOwnProperty("set") ? defineSetter(a, b, g.set) : a[b] = null
                    }
                }
            }
            void 0 === console && ( console = {});
            y(["debug", "info", "warn", "error", "log"], function(a) {
                console[a] || (console[a] = "log" in console ? function() {
                    var b = Array.apply({}, arguments);
                    b.unshift(a + ":");
                    console.log(b.join(" "))
                } : function() {
                })
            });
            if (!u("json-stringify")) {
                var q = function(a) {
                    return ('"' + a.replace(/(["\\])/g, "\\$1") + '"').replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r")
                };
                JSON.parse = function(a) {
                    return eval("(" + a + ")")
                };
                JSON.stringify = function(a, b, g) {
                    function e(a, f, c) {
                        var h, j;
                        h = typeof a;
                        var i = g ? f + g : "";
                        j = g ? " " : "";
                        var k = g ? "\n" : "", y = [];
                        b && ( a = b(c, a));
                        if ("number" === h)
                            return isFinite(a) ? a + "" : "null";
                        if (r(h, "Boolean"))
                            return a + "";
                        if (null === a)
                            return "null";
                        if (r(a, "String"))
                            return q(a);
                        if (!("function" === h || "undefined" === h)) {
                            if (r(a.toJSON, "Function"))
                                return e(a.toJSON(c), f, c);
                            if ( a instanceof Date)
                                return '"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z"'.replace(/\{(\w+)(\+)?\}/g, function(b, g, e) {
                                    b = a["getUTC"+g]() + ( e ? 1 : 0);
                                    return 10 > b ? "0" + b : b
                                });
                            if (a.valueOf() !== a)
                                return e(a.valueOf(), f, c);
                            if ( a instanceof Array) {
                                for ( c = 0, j = a.length; c < j; c++)
                                    h = e(a[c], i, c), r(h, "String") || ( h = "null"), y.push(k + i + h);
                                return "[" + y.join(",") + k + f + "]"
                            }
                            for (c in a) {
                                var o;
                                if (r(c, "Number"))
                                    o = '"' + c + '"';
                                else if (r(c, "String"))
                                    o = q(c);
                                else
                                    continue;
                                h = e(a[c], i, c);
                                r(h, "String") && y.push(k + i + o + ":" + j + h)
                            }
                            return "{" + y.join(",") + k + f + "}"
                        }
                    }
                    r(b, "String") && ( g = b, b = null);
                    return e(a, "", "")
                }
            }
            Object.defineProperty(g, "Ti", {
                value : w,
                writable : !1
            });
            Object.defineProperty(g, "Titanium", {
                value : w,
                writable : !1
            });
            console.info("[INFO] Appcelerator Titanium " + i + " Mobile Web");
            a.vendorPrefixes || (a.vendorPrefixes = ["", "Moz", "Webkit", "O", "ms"]);
            w.parse = JSON.parse;
            w.stringify = JSON.stringify;
            require.on(g, "beforeunload", function() {
                c.fireEvent("close");
                k.add("ti.end", "ti.end")
            });
            f(function() {
                e.set(document.body, {
                    margin : 0,
                    padding : 0
                });
                a.analytics && (null === localStorage.getItem("mobileweb_enrollSent") && (k.add("ti.enroll", "ti.enroll", {
                    mac_addr : null,
                    oscpu : null,
                    app_name : a.appName,
                    platform : w.Platform.name,
                    app_id : a.appId,
                    ostype : w.Platform.osname,
                    osarch : w.Platform.architecture,
                    model : w.Platform.model,
                    deploytype : a.deployType
                }), localStorage.setItem("mobileweb_enrollSent", !0)), k.add("ti.start", "ti.start", {
                    tz : (new Date).getTimezoneOffset(),
                    deploytype : a.deployType,
                    os : b.osname,
                    osver : b.ostype,
                    version : a.tiVersion,
                    un : null,
                    app_version : a.appVersion,
                    nettype : null
                }), k.send());
                f(function() {
                    require([a.main || "app.js"])
                })
            });
            w._5 = {
                prop : function(a, b, g, e) {
                    if (r(b, "Object"))
                        for (var f in b)
                        w._5.prop(a, f, b[f]);
                    else {
                        var c;
                        f = require("Ti/_/string").capitalize(b);
                        if (3 === arguments.length && require.is(g, "Object") && (g.get || g.set))
                            e = g, c = 1;
                        e && ("value" in e && ( c = 2, e.get || e.set ? ( g = e.value,
                        delete e.value,
                        void 0 !== g && ( c = 0)) : e.writable = !0), e.configurable = !0, e.enumerable = !0, Object.defineProperty(a, b, e));
                        a["get" + f] = function() {
                            return a[b]
                        };
                        2 > (c | 0) && (a["set" + f] = function(g) {
                            return a[b] = g
                        });
                        c || (a[b] = g)
                    }
                },
                propReadOnly : function(a, b, g) {
                    var e;
                    if (require.is(b, "Object"))
                        for (e in b)
                        w._5.propReadOnly(a, e, b[e]);
                    else
                        w._5.prop(a, b,
                        void 0, require.is(g, "Function") ? {
                            get : g,
                            value :
                            void 0
                        } : {
                            value : g
                        })
                },
                createClass : function(a, b) {
                    var e, f = a.split("."), c, h = g;
                    for ( e = 0; e < f.length; e++)
                        c = f[e],
                        void 0 === h[c] && (h[c] = e == f.length - 1 &&
                        void 0 !== b ? b : {}), h = h[c];
                    return h
                },
                EventDriven : function(a) {
                    var b = null;
                    a.addEventListener = function(a, g) {
                        b || ( b = {});
                        (b[a] = b[a] || []).push(g)
                    };
                    a.removeEventListener = function(a, g) {
                        if (b)
                            if (g)
                                for (var e = 0, f = b[a], c = f && f.length || 0; e < c; e++)
                                    f[e] === g && f.splice(e, 1);
                            else
                                delete b[a]
                    };
                    a.hasListener = function(a) {
                        return b && b[a]
                    };
                    a.fireEvent = function(g, e) {
                        if (b)
                            for (var f = 0, c = b[g], h = c && c.length, j = require.mix({
                                source : a,
                                type : g
                            }, e); f < h; )
                                c[f++].call(a, j)
                    }
                }
            };
            return w
        })
    },
    "Ti/_/Gestures/GestureRecognizer" : function() {
        define(["Ti/_/declare", "Ti/_/lang"], function(i) {
            return i("Ti._.Gestures.GestureRecognizer", null, {
                blocking : null,
                constructor : function() {
                    this.blocking = []
                },
                processTouchStartEvent : function() {
                },
                finalizeTouchStartEvent : function() {
                },
                processTouchEndEvent : function() {
                },
                finalizeTouchEndEvent : function() {
                },
                processTouchMoveEvent : function() {
                },
                finalizeTouchMoveEvent : function() {
                },
                processTouchCancelEvent : function() {
                },
                finalizeTouchCancelEvent : function() {
                }
            })
        })
    },
    "Ti/UI/Slider" : function() {
        define(["Ti/_/declare", "Ti/_/UI/Widget", "Ti/_/dom", "Ti/_/css", "Ti/_/style"], function(i, k, c, j, h) {
            var f = h.set;
            return i("Ti.UI.Slider", k, {
                constructor : function() {
                    this.slider = c.create("input", {
                        className : j.clean("TiUISliderSlider")
                    });
                    this.slider.type = "range";
                    this.domNode.appendChild(this.slider);
                    f(this.slider, "width", "100%");
                    f(this.slider, "height", "100%");
                    this.slider.min = 0;
                    this.slider.max = 100;
                    this.slider.value = 0
                },
                _defaultWidth : "100%",
                _defaultHeight : "auto",
                _getContentWidth : function() {
                    return this.slider.clientWidth
                },
                _getContentHeight : function() {
                    return this.slider.clientHeight
                },
                _setTouchEnabled : function(e) {
                    k.prototype._setTouchEnabled.apply(this, arguments);
                    this.slider && f(this.slider, "pointerEvents", e ? "auto" : "none")
                },
                properties : {
                    disabledLeftTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.disabledLeftTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.disabledLeftTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    disabledRightTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.disabledRightTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.disabledRightTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    disabledThumbImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.disabledThumbImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.disabledThumbImage" is not implemented yet.');
                            return e
                        }
                    },
                    highlightedLeftTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.highlightedLeftTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.highlightedLeftTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    highlightedRightTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.highlightedRightTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.highlightedRightTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    highlightedThumbImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.highlightedThumbImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.highlightedThumbImage" is not implemented yet.');
                            return e
                        }
                    },
                    leftTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.leftTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.leftTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    max : {
                        get : function() {
                            return this.slider.max
                        },
                        set : function(e) {
                            return this.slider.max = e
                        }
                    },
                    min : {
                        get : function() {
                            return this.slider.min
                        },
                        set : function(e) {
                            return this.slider.min = e
                        }
                    },
                    rightTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.rightTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.rightTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    selectedLeftTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.selectedLeftTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.selectedLeftTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    selectedRightTrackImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.selectedRightTrackImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.selectedRightTrackImage" is not implemented yet.');
                            return e
                        }
                    },
                    selectedThumbImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.selectedThumbImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.selectedThumbImage" is not implemented yet.');
                            return e
                        }
                    },
                    thumbImage : {
                        get : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.thumbImage" is not implemented yet.');
                            return e
                        },
                        set : function(e) {
                            console.debug('Property "Titanium.UI.Slider#.thumbImage" is not implemented yet.');
                            return e
                        }
                    },
                    value : {
                        get : function() {
                            return this.slider.value
                        },
                        set : function(e) {
                            return this.slider.value = e
                        }
                    }
                }
            })
        })
    },
    "Ti/_/Gestures/TouchStart" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.TouchStart", c, {
                name : "touchstart",
                processTouchStartEvent : function(c, h) {
                    if (!h._isGestureBlocked(this.name))
                        for (var f = 0; f < c.changedTouches.length; f++)
                            k.hitch(h, h._handleTouchEvent(this.name, {
                                x : c.changedTouches[f].clientX,
                                y : c.changedTouches[f].clientY
                            }))
                }
            })
        })
    },
    "Ti/UI/TableViewSection" : function() {
        define("Ti/_/declare,Ti/_/lang,Ti/_/UI/Widget,Ti/_/style,Ti/UI/MobileWeb/TableViewSeparatorStyle,Ti/UI".split(","), function(i, k, c, j, h, f) {
            var e = require.is, b = j.set;
            return i("Ti.UI.TableViewSection", c, {
                constructor : function() {
                    this._indexedContent = [];
                    require.each(["_header", "_rows", "_footer"], k.hitch(this, function(b) {
                        c.prototype.add.call(this, this[b] = f.createView({
                            height : "auto",
                            layout : "vertical"
                        }))
                    }));
                    this.layout = "vertical"
                },
                _defaultHeight : "auto",
                _defaultWidth : "100%",
                _handleTouchEvent : function(b, a) {
                    if ("click" === b || "singletap" === b)
                        this._parent && this._parent._parent && (this._parent._parent._tableViewSectionClicked = this);
                    c.prototype._handleTouchEvent.apply(this, arguments)
                },
                _tableView : null,
                _createSeparator : function() {
                    var b = this._tableView && this._tableView.separatorStyle === h.SINGLE_LINE;
                    return f.createView({
                        height : b ? 1 : 0,
                        width : "100%",
                        backgroundColor : b ? this._tableView.separatorColor : "transparent"
                    })
                },
                _createDecorationLabel : function(b) {
                    return f.createLabel({
                        text : b,
                        backgroundColor : "darkGrey",
                        color : "white",
                        width : "100%",
                        height : "auto",
                        left : 0,
                        font : {
                            fontSize : 18
                        }
                    })
                },
                _refreshRows : function() {
                    if (this._tableView) {
                        for (var e = this._rows.children, a = this._tableView, f = 1; f < e.length; f += 2) {
                            var c = e[f];
                            c._defaultHeight = a.rowHeight;
                            b(c.domNode, "minHeight", a.minRowHeight);
                            b(c.domNode, "maxHeight", a.maxRowHeight)
                        }
                        for ( f = 0; f < e.length; f += 2)
                            c = e[f], a.separatorStyle === h.SINGLE_LINE ? (c.height = 1, c.backgroundColor = a.separatorColor) : (c.height = 0, c.backgroundColor = "transparent")
                    }
                },
                _insertHelper : function(b, a) {
                    if (!k.isDef(b.declaredClass) || "Ti.UI.TableViewRow" != b.declaredClass)
                        b = f.createTableViewRow(b);
                    this._rows._insertAt(b, 2 * a + 1);
                    this._rows._insertAt(this._createSeparator(), 2 * a + 2);
                    b._tableViewSection = this;
                    this.rowCount++
                },
                add : function(b, a) {
                    var f = this._rows.children, c = this.rowCount;
                    k.isDef(a) || ( a = c);
                    if (!(0 > a || a > c))
                        if (0 === f.length && this._rows.add(this._createSeparator()), e(b, "Array"))
                            for (var h in b)
                            this._insertHelper(b[h], a++);
                        else
                            this._insertHelper(b, a)
                },
                _removeAt : function(b) {
                    0 > b || b >= this.rowCount || (this._rows.children[2 * b + 1]._tableViewSection = null, this._rows.remove(this._rows.children[2 * b + 1]), this._rows.remove(this._rows.children[2 * b + 1]), 1 === this._rows.children.length && this._rows.remove(this._rows.children[0]))
                },
                remove : function(b) {
                    b = this._rows.children.indexOf(b);
                    -1 !== b && this._removeAt(b)
                },
                properties : {
                    footerTitle : {
                        set : function(b, a) {
                            a != b && (this._footer._removeAllChildren(), this._footer.add(this._createDecorationLabel(b)), this._footer.add(this._createSeparator()));
                            return b
                        }
                    },
                    footerView : {
                        set : function(b, a) {
                            a != b && (this._footer._removeAllChildren(), this._footer.add(b));
                            return b
                        }
                    },
                    headerTitle : {
                        set : function(b, a) {
                            a != b && (this._header._removeAllChildren(), this._header.add(this._createDecorationLabel(b)), this._header.add(this._createSeparator()));
                            return b
                        }
                    },
                    headerView : {
                        set : function(b, a) {
                            a != b && (this._header._removeAllChildren(), this._header.add(b));
                            return b
                        }
                    },
                    rowCount : function() {
                        return Math.floor(this._rows.children.length / 2)
                    }
                }
            })
        })
    },
    "Ti/UI/Switch" : function() {
        define("Ti/_/declare,Ti/_/UI/FontWidget,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/_/lang,Ti/UI".split(","), function(i, k, c, j, h, f, e) {
            var b = h.set, j = {
                post : "_updateLook"
            };
            return i("Ti.UI.Switch", k, {
                domType : "button",
                constructor : function() {
                    this._contentContainer = c.create("div", {
                        className : "TiUIButtonContentContainer",
                        style : {
                            display : ["-webkit-box", "-moz-box"],
                            boxOrient : "vertical",
                            boxPack : "center",
                            boxAlign : "stretch",
                            width : "100%",
                            height : "100%"
                        }
                    }, this.domNode);
                    this._titleContainer = c.create("div", {
                        className : "TiUIButtonTextAligner",
                        style : {
                            display : ["-webkit-box", "-moz-box"],
                            boxOrient : "vertical",
                            boxPack : "center",
                            boxAlign : "center",
                            boxFlex : 1
                        }
                    }, this._contentContainer);
                    this._switchTitle = c.create("div", {
                        className : "TiUISwitchTitle",
                        style : {
                            whiteSpace : "nowrap",
                            pointerEvents : "none",
                            textAlign : "center"
                        }
                    }, this._titleContainer);
                    this._addStyleableDomNode(this._switchTitle);
                    this._indicatorContainer = c.create("div", {
                        className : "TiUIButtonTextAligner",
                        style : {
                            display : ["-webkit-box", "-moz-box"],
                            boxPack : "center",
                            boxAlign : "center",
                            marginTop : "3px"
                        }
                    }, this._contentContainer);
                    this._switchIndicator = c.create("div", {
                        className : "TiUISwitchIndicator",
                        style : {
                            padding : "4px 4px",
                            borderRadius : "4px",
                            border : "1px solid #888",
                            pointerEvents : "none",
                            width : "40px"
                        }
                    }, this._indicatorContainer);
                    this._switchIndicator.domNode += " TiUISwitchIndicator";
                    this._disabledDimmer = c.create("div", {
                        className : "TiUISwitchDisableDimmer",
                        style : {
                            pointerEvents : "none",
                            opacity : 0,
                            backgroundColor : "white",
                            width : "100%",
                            height : "100%",
                            position : "absolute",
                            top : 0,
                            left : 0
                        }
                    }, this.domNode);
                    this._setDefaultLook();
                    this.domNode.addEventListener("click", f.hitch(this, function() {
                        this.value = !this.value
                    }));
                    this.value = !1
                },
                _updateLook : function() {
                    this.backgroundColor || this.backgroundDisabledColor || this.backgroundDisabledImage || this.backgroundFocusedColor || this.backgroundFocusedImage || this.backgroundImage || this.backgroundSelectedColor || this.backgroundSelectedImage ? this._clearDefaultLook() : this._setDefaultLook();
                    this._doBackground()
                },
                _setDefaultLook : function() {
                    this._hasDefaultLook || (this._hasDefaultLook = !0, this.domNode.className += " TiUIButtonDefault", b(this.domNode, "padding", "6px 6px"), this._previousBorderWidth = this.borderWidth, this._previousBorderColor = this.borderColor, this.borderWidth = 1, this.borderColor = "#aaa")
                },
                _clearDefaultLook : function() {
                    if (this._hasDefaultLook) {
                        this._hasDefaultLook = !1;
                        var e = this.domNode.className;
                        this.domNode.className = e.substring(0, e.length - 18);
                        b(this.domNode, "padding", 0);
                        this.borderWidth = this._previousBorderWidth;
                        this.borderColor = this._previousBorderColor;
                        b(this._disabledDimmer, {
                            opacity : 0
                        })
                    }
                },
                _getContentWidth : function() {
                    return Math.max(this._measureText(this._switchTitle.innerHTML, this._switchTitle).width, this._switchIndicator.offsetWidth) + (this._hasDefaultLook ? 12 : 0)
                },
                _getContentHeight : function() {
                    return this._measureText(this._switchTitle.innerHTML, this._switchTitle).height + this._switchIndicator.offsetHeight + 3 + (this._hasDefaultLook ? 12 : 0)
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                properties : {
                    backgroundColor : j,
                    backgroundDisabledColor : j,
                    backgroundDisabledImage : j,
                    backgroundFocusedColor : j,
                    backgroundFocusedImage : j,
                    backgroundImage : j,
                    backgroundSelectedColor : j,
                    backgroundSelectedImage : j,
                    color : {
                        set : function(e) {
                            b(this._switchTitle, "color", e);
                            return e
                        }
                    },
                    enabled : {
                        set : function(e, a) {
                            e !== a && ( e ? this._hasDefaultLook && b(this._disabledDimmer, {
                                opacity : 0
                            }) : this._hasDefaultLook && b(this._disabledDimmer, {
                                opacity : 0.5
                            }), this._setTouchEnabled(e));
                            return e
                        },
                        value : !0
                    },
                    textAlign : {
                        set : function(g) {
                            var a = "";
                            switch(g) {
                                case e.TEXT_VERTICAL_ALIGNMENT_TOP:
                                    a = "start";
                                    break;
                                case e.TEXT_VERTICAL_ALIGNMENT_CENTER:
                                    a = "center";
                                    break;
                                case e.TEXT_VERTICAL_ALIGNMENT_BOTTOM:
                                    a = "end"
                            }
                            b(this._titleContainer, "boxAlign", a);
                            return g
                        }
                    },
                    titleOff : {
                        set : function(b) {
                            this.value || (this._switchTitle.innerHTML = b, this._hasAutoDimensions() && this._triggerParentLayout());
                            return b
                        },
                        value : "Off"
                    },
                    titleOn : {
                        set : function(b) {
                            this.value && (this._switchTitle.innerHTML = b, this._hasAutoDimensions() && this._triggerParentLayout());
                            return b
                        },
                        value : "On"
                    },
                    value : {
                        set : function(e) {
                            b(this._switchIndicator, {
                                backgroundColor : e ? "#0f0" : "#aaa"
                            });
                            this._switchTitle.innerHTML = e ? this.titleOn : this.titleOff;
                            this._hasAutoDimensions() && this._triggerParentLayout();
                            this.fireEvent("change", {
                                value : !!e
                            });
                            return e
                        }
                    },
                    verticalAlign : {
                        set : function(g) {
                            var a = "";
                            switch(g) {
                                case e.TEXT_VERTICAL_ALIGNMENT_TOP:
                                    a = "start";
                                    break;
                                case e.TEXT_VERTICAL_ALIGNMENT_CENTER:
                                    a = "center";
                                    break;
                                case e.TEXT_VERTICAL_ALIGNMENT_BOTTOM:
                                    a = "end"
                            }
                            b(this._titleContainer, "boxPack", a)
                        },
                        value : e.TEXT_VERTICAL_ALIGNMENT_CENTER
                    }
                }
            })
        })
    },
    "Ti/UI/WebView" : function() {
        define("Ti/_/declare,Ti/_/UI/Widget,Ti/_/dom,Ti/_/event,Ti/_/lang,Ti/_/text!Ti/_/UI/WebViewBridge.js,Ti/App,Ti/API".split(","), function(i, k, c, j, h, f, e, b) {
            return i("Ti.UI.WebView", k, {
                constructor : function() {
                    e.addEventListener(this.widgetId + ":unload", h.hitch(this, function() {
                        this._loading(1)
                    }))
                },
                destroy : function() {
                    e.removeEventListener(this.widgetId + ":unload");
                    this._destroy();
                    k.prototype.destroy.apply(this, arguments)
                },
                _destroy : function() {
                    this._iframe && (j.off(this._iframeHandles), c.destroy(this._iframe))
                },
                _createIFrame : function() {
                    if (this._parent) {
                        this._destroy();
                        this._loading(1);
                        var e = this.url, a = this.url.match(/(https?)\:\/\/([^\:\/]*)(:?\d*)(.*)/), h = window.location, j = a && a[0] + ":" === h.protocol && a[1] + a[2] === window.location.host, i = this._iframe = c.create("iframe", {
                            frameborder : 0,
                            marginwidth : 0,
                            marginheight : 0,
                            hspace : 0,
                            vspace : 0,
                            scrolling : this.showScrollbars ? "auto" : "no",
                            src : e,
                            style : {
                                width : "100%",
                                height : "100%"
                            }
                        }, this.domNode);
                        this._iframeHandles = [require.on(i, "load", this, function() {
                            var a = Math.max(j | 0, 0), e = i.contentWindow, g, c;
                            if (-1 !== a)
                                j = -1;
                            else
                                for (g in e) {
                                    a++;
                                    break
                                }
                            0 < a ? ( c = e.location.href, this.evalJS(f.replace("WEBVIEW_ID", this.widgetId + ":unload"))) : b.warn("Unable to inject WebView bridge into cross-domain URL, ignore browser security message");
                            this._loading();
                            this.fireEvent("load", {
                                url : c ? this.properties.__values__.url = c : this.url
                            })
                        }), require.on(i, "error", this, function() {
                            this._loading();
                            this.fireEvent("error", {
                                message : "Page failed to load",
                                url : this.url
                            })
                        })]
                    }
                },
                _setParent : function(b) {
                    k.prototype._setParent.apply(this, arguments);
                    this.url && this._createIFrame()
                },
                _getWindow : function() {
                    return this._iframe.contentWindow
                },
                _getDoc : function() {
                    return this._getWindow().document
                },
                _getHistory : function() {
                    return this._getWindow().history
                },
                _loading : function(b) {
                    this.loading || b && this.fireEvent("beforeload", {
                        url : this.url
                    });
                    this.constants.loading = !!b
                },
                canGoBack : function() {
                    return this.url && this._getHistory().length
                },
                canGoForward : function() {
                    return this.url && this._getHistory().length
                },
                evalJS : function(b) {
                    var a = this._getWindow();
                    return b && a && a.eval && a.eval(b)
                },
                goBack : function() {
                    if (this.canGoBack()) {
                        var b = this._getHistory();
                        b && (this._loading(1), b.go(-1))
                    }
                },
                goForward : function() {
                    if (this.canGoForward()) {
                        var b = this._getHistory();
                        b && (this._loading(1), b.go(1))
                    }
                },
                reload : function() {
                    var b = this._getWindow();
                    this.url && b ? b.location.href = this.url : this._createIFrame()
                },
                stopLoading : function(b) {
                    try {
                        this.loading && b ? this._destroy() : this._getWindow().stop()
                    } catch(a) {
                    }
                    this._loading()
                },
                _defaultWidth : "100%",
                _defaultHeight : "100%",
                _getContentHeight : function() {
                    return this._iframe ? this._iframe.clientHeight : 0
                },
                _getContentWidth : function() {
                    return this._iframe ? this._iframe.clientWidth : 0
                },
                _setContent : function(b) {
                    try {
                        this.properties.__values__.url = "";
                        this._createIFrame();
                        var a = this._getDoc();
                        a.open();
                        a.write(b);
                        a.close()
                    } catch(e) {
                    }
                    return b
                },
                properties : {
                    data : {
                        set : function(b) {
                            return this._setContent(b)
                        }
                    },
                    html : {
                        set : function(b) {
                            return this._setContent(b)
                        }
                    },
                    showScrollbars : {
                        set : function(b) {
                            this._iframe && c.attr.set(this._iframe, "scrolling", b ? "auto" : "no");
                            return b
                        },
                        value : !0
                    },
                    url : {
                        post : function() {
                            this._createIFrame()
                        }
                    }
                },
                constants : {
                    loading : !1
                }
            })
        })
    },
    "Ti/_/UI/SuperView" : function() {
        define(["Ti/_/declare", "Ti/_/dom", "Ti/_/lang", "Ti/UI", "Ti/UI/View"], function(i, k, c, j, h) {
            var f = [], e = Math.random(), b = (window.history || {}).pushState;
            b && require.on(window, "popstate", function(b) {
                var a = f.length, c = a && f[a - 1], h;
                if (b && b.state && b.state.sessId === e && ( h = b.state.id) && 1 < a && f[a - 2].widgetId === h)
                    c.close(), j._setWindow( c = f[f.length - 1]), c.fireEvent("focus", c._state)
            });
            return i("Ti._.UI.SuperView", h, {
                constructor : function() {
                    this.addEventListener("focus", c.hitch(this, function() {
                        this.setWindowTitle(this.title)
                    }))
                },
                destroy : function() {
                    this.close();
                    h.prototype.destroy.apply(this, arguments)
                },
                open : function() {
                    var c = f.length, a = c && f[c - 1];
                    this._opened || (this._opened = 1, j._addWindow(this, 1).show(), a && a.fireEvent("blur", a._state), b && history[a?"pushState":"replaceState"]({
                        id : this.widgetId,
                        sessId : e
                    }, "", ""), f.push(this), this._stackIdx = c, this.fireEvent("open"), this.fireEvent("focus", this._state))
                },
                close : function() {
                    this._opened && (this._opened = 0, j._removeWindow(this), null !== this._stackIdx && this._stackIdx < f.length && f.splice(this._stackIdx, 1), this._stackIdx = null, j._setWindow(f[f.length - 1]), this.fireEvent("blur", this._state), this.fireEvent("close"))
                },
                setWindowTitle : function(b) {
                    f[f.length - 1] === this && (document.title = b || require.config.project.name);
                    return b
                }
            })
        })
    },
    "Ti/Platform/DisplayCaps" : function() {
        define(["Ti/_", "Ti/_/Evented", "Ti/_/lang"], function(i, k, c) {
            var j = navigator.userAgent.toLowerCase(), i = c.setObject("Ti.Platform.DisplayCaps", k, {
                constants : {
                    density : function() {
                        switch(j) {
                            case "iphone":
                                return "medium";
                            case "ipad":
                                return "medium";
                            default:
                                return ""
                        }
                    },
                    dpi : i.dpi,
                    platformHeight : window.innerHeight,
                    platformWidth : window.innerWidth
                }
            });
            return Ti.Platform.displayCaps = i
        })
    },
    "Ti/UI/ImageView" : function() {
        define("Ti/_/declare,Ti/_/UI/Widget,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/_/lang".split(","), function(i, k, c, j, h, f) {
            var e = h.set;
            return i("Ti.UI.ImageView", k, {
                constructor : function() {
                    this.contentContainer = c.create("div", {
                        className : j.clean("TiUIImageViewAligner")
                    });
                    e(this.contentContainer, "width", "100%");
                    e(this.contentContainer, "height", "100%");
                    e(this.contentContainer, "display", "-webkit-box");
                    e(this.contentContainer, "display", "-moz-box");
                    e(this.contentContainer, "boxOrient", "horizontal");
                    e(this.contentContainer, "boxPack", "center");
                    e(this.contentContainer, "boxAlign", "center");
                    this.domNode.appendChild(this.contentContainer);
                    this.imageDisplay = c.create("img", {
                        className : j.clean("TiUIImageViewDisplay")
                    });
                    this.imageDisplay.ondragstart = function() {
                        return !1
                    };
                    this.contentContainer.appendChild(this.imageDisplay);
                    e(this.imageDisplay, "width", "100%");
                    e(this.imageDisplay, "height", "100%")
                },
                pause : function() {
                    console.debug('Method "Titanium.UI.ImageView#.pause" is not implemented yet.')
                },
                start : function() {
                    console.debug('Method "Titanium.UI.ImageView#.start" is not implemented yet.')
                },
                stop : function() {
                    console.debug('Method "Titanium.UI.ImageView#.stop" is not implemented yet.')
                },
                toBlob : function() {
                    console.debug('Method "Titanium.UI.ImageView#.toBlob" is not implemented yet.')
                },
                _doLayout : function() {
                    k.prototype._doLayout.apply(this, arguments);
                    if (this.canScale) {
                        var b = this._measuredWidth / this._measuredHeight, c = this._getContentWidth() / this._getContentHeight();
                        b > c ? (e(this.imageDisplay, "width", "auto"), e(this.imageDisplay, "height", "100%")) : (e(this.imageDisplay, "width", "100%"), e(this.imageDisplay, "height", "auto"))
                    } else
                        e(this.imageDisplay, "width", "auto"), e(this.imageDisplay, "height", "auto")
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                _getContentWidth : function() {
                    return this.imageDisplay.width
                },
                _getContentHeight : function() {
                    return this.imageDisplay.height
                },
                _setTouchEnabled : function(b) {
                    k.prototype._setTouchEnabled.apply(this, arguments);
                    var c = b ? "auto" : "none";
                    this.contentContainer && e(this.contentContainer, "pointerEvents", c);
                    this.imageDisplay && e(this.imageDisplay, "pointerEvents", c)
                },
                properties : {
                    animating : !1,
                    canScale : {
                        set : function(b, e) {
                            b !== e && this._hasAutoDimensions() && this._triggerLayout();
                            return b
                        },
                        value : !0
                    },
                    defaultImage : null,
                    duration : 0,
                    image : {
                        set : function(b) {
                            this.defaultImage && (this.imageDisplay.src = b);
                            var e = new Image;
                            require.on(e, "load", f.hitch(this, function() {
                                this.imageDisplay.src = b;
                                this._hasAutoDimensions() && this._triggerLayout()
                            }));
                            return e.src = b
                        }
                    },
                    images : {
                        get : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.images" is not implemented yet.');
                            return b
                        },
                        set : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.images" is not implemented yet.');
                            return b
                        }
                    },
                    paused : !1,
                    preventDefaultImage : {
                        get : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.preventDefaultImage" is not implemented yet.');
                            return b
                        },
                        set : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.preventDefaultImage" is not implemented yet.');
                            return b
                        }
                    },
                    repeatCount : {
                        get : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.repeatCount" is not implemented yet.');
                            return b
                        },
                        set : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.repeatCount" is not implemented yet.');
                            return b
                        }
                    },
                    reverse : {
                        get : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.reverse" is not implemented yet.');
                            return b
                        },
                        set : function(b) {
                            console.debug('Property "Titanium.UI.ImageView#.reverse" is not implemented yet.');
                            return b
                        }
                    }
                }
            })
        })
    },
    "Ti/UI/Animation" : function() {
        define(["Ti/_/declare", "Ti/_/Evented"], function(i, k) {
            return i("Ti.UI.Animation", k, {
                start : function() {
                    this.fireEvent("start")
                },
                complete : function() {
                    this.fireEvent("complete")
                },
                properties : {
                    autoreverse :
                    void 0,
                    backgroundColor :
                    void 0,
                    bottom :
                    void 0,
                    center :
                    void 0,
                    color :
                    void 0,
                    curve :
                    void 0,
                    delay :
                    void 0,
                    duration :
                    void 0,
                    height :
                    void 0,
                    left :
                    void 0,
                    opacity :
                    void 0,
                    repeat :
                    void 0,
                    right :
                    void 0,
                    top :
                    void 0,
                    transform :
                    void 0,
                    visible :
                    void 0,
                    width :
                    void 0,
                    zIndex :
                    void 0
                }
            })
        })
    },
    "Ti/_" : function() {
        define(["Ti/_/lang"], function(i) {
            var k = document.body, c = document.createElement("div"), j;
            c.style.width = "1in";
            c.style.visibility = "hidden";
            k.appendChild(c);
            j = parseInt(c.clientWidth);
            k.removeChild(c);
            return i.setObject("Ti._", {
                assert : function(c, f) {
                    if (!c)
                        throw Error(f);
                },
                dpi : j,
                escapeHtmlEntities : function(c) {
                    return ("" + c).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;")
                },
                getAbsolutePath : function(c) {
                    /^app\:\/\//.test(c) && ( c = c.substring(6));
                    /^\//.test(c) && ( c = c.substring(1));
                    return /^\/\//.test(c) || 0 < c.indexOf("://") ? c : location.pathname.replace(/(.*)\/.*/, "$1") + "/" + c
                },
                uuid : function() {
                    return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
                        var f = 16 * Math.random() | 0;
                        return ("x" == c ? f : f & 3 | 8).toString(16)
                    }).toUpperCase()
                }
            })
        })
    },
    "Ti/UI/View" : function() {
        define("Ti/_/declare,Ti/_/dom,Ti/_/UI/Element,Ti/_/lang,Ti/_/string,Ti/_/Layouts,Ti/_/style".split(","), function(i, k, c, j, h, f, e) {
            var b = k.unitize, g = e.set, a;
            return a = i("Ti.UI.View", c, {
                _parent : null,
                constructor : function() {
                    this.children = [];
                    this.layout = "absolute";
                    this.containerNode = this.domNode
                },
                add : function(a) {
                    a._setParent(this);
                    this.children.push(a);
                    this.containerNode.appendChild(a.domNode);
                    this._triggerLayout()
                },
                _setParent : function(a) {
                    this._parent = a
                },
                _insertAt : function(a, b) {
                    b > this.children.length || 0 > b || (b === this.children.length ? this.add(a) : (a._parent = this, this.containerNode.insertBefore(a.domNode, this.children[b].domNode), this.children.splice(b, 0, a), this._triggerLayout()))
                },
                remove : function(a) {
                    var b = this.children.indexOf(a);
                    -1 !== b && (this.children.splice(b, 1), a._setParent(), k.detach(a.domNode), this._triggerLayout())
                },
                destroy : function() {
                    if (this.children) {
                        for (var b; this.children.length; )
                            b = this.children.splice(0, 1), b[0].destroy();
                        this._parent && a.prototype.remove.call(this._parent, this)
                    }
                    c.prototype.destroy.apply(this, arguments)
                },
                _removeAllChildren : function() {
                    for (var a = this.children; a.length; )
                        this.remove(a[0]);
                    this._triggerLayout()
                },
                _getScrollableContentWidth : function() {
                    return 600
                },
                _getScrollablePosition : function() {
                    return {
                        x : 0,
                        y : 0
                    }
                },
                _createHorizontalScrollBar : function() {
                    this._horizontalScrollBar = k.create("div", {
                        className : "TiUIScrollBar",
                        style : {
                            position : "absolute",
                            zIndex : 2147483647,
                            border : "3px solid #555",
                            borderRadius : "3px",
                            height : "0px",
                            bottom : "0px",
                            opacity : 0
                        }
                    }, this.domNode)
                },
                _destroyHorizontalScrollBar : function() {
                    this._cancelPreviousAnimation();
                    k.destroy(this._horizontalScrollBar)
                },
                _createVerticalScrollBar : function() {
                    this._verticalScrollBar = k.create("div", {
                        className : "TiUIScrollBar",
                        style : {
                            position : "absolute",
                            zIndex : 2147483647,
                            border : "3px solid #555",
                            borderRadius : "3px",
                            width : "0px",
                            right : "0px",
                            opacity : 0
                        }
                    }, this.domNode)
                },
                _destroyVerticalScrollBar : function() {
                    this._cancelPreviousAnimation();
                    k.destroy(this._verticalScrollBar)
                },
                _cancelPreviousAnimation : function() {
                    this._isScrollBarActive && (g(this._horizontalScrollBar, "transition", ""), g(this._verticalScrollBar, "transition", ""), clearTimeout(this._horizontalScrollBarTimer), clearTimeout(this._verticalScrollBarTimer))
                },
                _startScrollBars : function(a, e) {
                    this._cancelPreviousAnimation();
                    if (this._horizontalScrollBar && 1 > e.x && 0 < e.x) {
                        var c = a.x, f = this._measuredWidth;
                        0 > c && ( c = 0);
                        1 < c && ( c = 1);
                        this._horizontalScrollBarWidth = (f - 6) * e.x;
                        10 > this._horizontalScrollBarWidth && (this._horizontalScrollBarWidth = 10);
                        g(this._horizontalScrollBar, {
                            opacity : 0.5,
                            left : b(c * (f - this._horizontalScrollBarWidth - 6)),
                            width : b(this._horizontalScrollBarWidth)
                        });
                        this._isScrollBarActive = !0
                    }
                    this._verticalScrollBar && 1 > e.y && 0 < e.y && ( c = a.y, f = this._measuredHeight, 0 > c && ( c = 0), 1 < c && ( c = 1), this._verticalScrollBarHeight = (f - 6) * e.y, 10 > this._verticalScrollBarHeight && (this._verticalScrollBarHeight = 10), g(this._verticalScrollBar, {
                        opacity : 0.5,
                        top : b(c * (f - this._verticalScrollBarHeight - 6)),
                        height : b(this._verticalScrollBarHeight)
                    }), this._isScrollBarActive = !0)
                },
                _updateScrollBars : function(a) {
                    if (this._isScrollBarActive) {
                        if (this._horizontalScrollBar) {
                            var e = a.x, c = this._measuredWidth;
                            0 > e && ( e = 0);
                            1 < e && ( e = 1);
                            g(this._horizontalScrollBar, "left", b(e * (c - this._horizontalScrollBarWidth - 6)))
                        }
                        this._verticalScrollBar && ( a = a.y, e = this._measuredHeight, 0 > a && ( a = 0), 1 < a && ( a = 1), g(this._verticalScrollBar, "top", b(a * (e - this._verticalScrollBarHeight - 6))))
                    }
                },
                _endScrollBars : function() {
                    if (this._isScrollBarActive) {
                        var a = this;
                        if (this._horizontalScrollBar) {
                            var b = this._horizontalScrollBar;
                            b && (g(b, "transition", "all 1s ease-in-out"), setTimeout(function() {
                                g(b, "opacity", 0);
                                a._horizontalScrollBarTimer = setTimeout(function() {
                                    a._isScrollBarActive = !1;
                                    g(b, "transition", "")
                                }, 500)
                            }, 0))
                        }
                        if (this._verticalScrollBar) {
                            var e = this._verticalScrollBar;
                            e && (g(e, "transition", "all 1s ease-in-out"), setTimeout(function() {
                                g(e, "opacity", 0);
                                a._verticalScrollBarTimer = setTimeout(function() {
                                    a._isScrollBarActive = !1;
                                    g(e, "transition", "")
                                }, 500)
                            }, 0))
                        }
                    }
                },
                _defaultWidth : "100%",
                _defaultHeight : "100%",
                properties : {
                    layout : {
                        set : function(a) {
                            a = ( a = a.toLowerCase().match(/^(horizontal|vertical)$/)) ? a[0] : "absolute";
                            this._layout && (this._layout.destroy(), this._layout = null);
                            this._layout = new (f[h.capitalize(a)])(this);
                            return a
                        }
                    }
                }
            })
        })
    },
    "Ti/_/Evented" : function() {
        define(function() {
            return {
                destroy : function() {
                    for (var i in this)this.hasOwnProperty(i) &&
                    delete this[i]
                },
                addEventListener : function(i, k) {
                    this.listeners || (this.listeners = {});
                    (this.listeners[i] = this.listeners[i] || []).push(k)
                },
                removeEventListener : function(i, k) {
                    if (this.listeners)
                        if (k)
                            for (var c = 0, j = this.listeners[i], h = j && j.length || 0; c < h; c++)
                                j[c] === k && j.splice(c, 1);
                        else
                            delete this.listeners[i]
                },
                fireEvent : function(i, k) {
                    for (var c = 0, j = this.listeners && this.listeners[i], h = j && j.length, f = require.mix({
                        source : this,
                        type : i
                    }, k); c < h; )
                        j[c++].call(this, f)
                }
            }
        })
    },
    "Ti/_/include" : function() {
        define(function() {
            var i = {}, k = [];
            return {
                dynamic : !0,
                normalize : function(c, j) {
                    var h = c.split("!"), f = h[0];
                    h.shift();
                    return (/^\./.test(f) ? j(f) : f) + (h.length ? "!" + h.join("!") : "")
                },
                load : function(c, j, h) {
                    var f;
                    f = c.split("!");
                    var e;
                    if ( e = 1 < f.length && "sandbox" === f[0])
                        f.shift(), c = f.join("!");
                    c = j.toUrl(/^\//.test(c) ? c : "./" + c, k.length ? {
                        name : k[k.length - 1]
                    } : null);
                    f = i[c] || j.cache(c);
                    if (!f)
                        if ( f = new XMLHttpRequest, f.open("GET", c, !1), f.send(null), 200 === f.status)
                            f = f.responseText;
                        else
                            throw Error('Failed to load include "' + c + '": ' + f.status);
                    k.push(c);
                    try {
                        j.evaluate(i[c] = f, 0, !e)
                    } catch(b) {
                        throw b;
                    } finally {
                        k.pop()
                    }
                    h(f)
                }
            }
        })
    },
    "Ti/_/Gestures/SingleTap" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.SingleTap", c, {
                name : "singletap",
                _touchStartLocation : null,
                _driftThreshold : 25,
                processTouchStartEvent : function(c) {
                    1 == c.touches.length && 1 == c.changedTouches.length && (this._touchStartLocation = {
                        x : c.changedTouches[0].clientX,
                        y : c.changedTouches[0].clientY
                    })
                },
                processTouchEndEvent : function(c, h) {
                    if (0 == c.touches.length && 1 == c.changedTouches.length && this._touchStartLocation) {
                        var f = c.changedTouches[0].clientX, e = c.changedTouches[0].clientY;
                        Math.abs(this._touchStartLocation.x - f) < this._driftThreshold && Math.abs(this._touchStartLocation.y - e) < this._driftThreshold && (this._touchStartLocation = null, f = {
                            x : f,
                            y : e
                        }, h._isGestureBlocked(this.name) || (k.hitch(h, h._handleTouchEvent("click", f)), k.hitch(h, h._handleTouchEvent(this.name, f))))
                    }
                },
                processTouchCancelEvent : function() {
                    this._touchStartLocation = null
                }
            })
        })
    },
    "Ti/_/string" : function() {
        define(["Ti/_", "Ti/_/lang"], function(i, k) {
            function c(a, b, c) {
                var f = b - 10;
                for (e(a.arg, "String") || (a.arg = "" + a.arg); a.arg.length < f; )
                    a.arg = a.rightJustify ? a.arg + c : c + a.arg;
                b -= a.arg.length;
                a.arg = a.rightJustify ? a.arg + c.substring(0, b) : c.substring(0, b) + a.arg
            }

            function j(a, b) {
                c(a, k.val(b, a.precision), g)
            }

            var h = i.assert, f = require.has, e = require.is, b = require.mix, g = "0000000000", a = {
                b : {
                    base : 2,
                    isInt : 1
                },
                o : {
                    base : 8,
                    isInt : 1
                },
                x : {
                    base : 16,
                    isInt : 1
                },
                X : {
                    extend : ["x"],
                    toUpper : 1
                },
                d : {
                    base : 10,
                    isInt : 1
                },
                i : {
                    extend : ["d"]
                },
                u : {
                    extend : ["d"],
                    isUnsigned : 1
                },
                c : {
                    setArg : function(a) {
                        if (!isNaN(a.arg)) {
                            var b = parseInt(a.arg);
                            h(0 > b || 127 < b, "Invalid character code passed to %c in sprintf");
                            a.arg = isNaN(b) ? "" + b : String.fromCharCode(b)
                        }
                    }
                },
                s : {
                    setMaxWidth : function(a) {
                        a.maxWidth = "." === a.period ? a.precision : -1
                    }
                },
                e : {
                    isDouble : 1
                },
                E : {
                    extend : ["e"],
                    toUpper : 1
                },
                f : {
                    isDouble : 1
                },
                F : {
                    extend : ["f"]
                },
                g : {
                    isDouble : 1
                },
                G : {
                    extend : ["g"],
                    toUpper : 1
                }
            };
            String.format = function(g) {
                for (var i = k.toArray(arguments), u = /\%(?:\(([\w_]+)\)|([1-9]\d*)\$)?([0 +\-\#]*)(\*|\d+)?(\.)?(\*|\d+)?[hlL]?([\%scdeEfFgGiouxX])/g, w = [], l, q = 0, o, p, v = p = 0, s = "", x = "mapping,intmapping,flags,_minWidth,period,_precision,specifier".split(","); o = u.exec(g); ) {
                    p = g.slice(p, u.lastIndex - o[0].length);
                    p.length && w.push(p);
                    if (f("opera")) {
                        for ( p = o.slice(0); p.length < o.length; )
                            p.push(null);
                        o = p
                    }
                    l = {};
                    o.slice(1).concat(w.length).map(function(a, b) {
                        x[b] && (l[x[b]] = a)
                    });
                    w.push(l);
                    l[0] && q++;
                    p = u.lastIndex
                }
                p = g.slice(p);
                p.length && w.push(p);
                i.shift();
                h(!q || i.length, "Format has no mapped arguments");
                require.each(w, function(n) {
                    var l, o = {}, u, p, w = a[n.specifier];
                    if (e(n, "String"))
                        s += n;
                    else {
                        q ? h(
                        void 0 === i[n.mapping], "Missing key " + n.mapping) : (n.intmapping && ( v = parseInt(n.intmapping) - 1), h(v < i.length, "Got " + i.length + " format arguments, insufficient for '" + g + "'"));
                        n.arg = i[ q ? n.mapping : v++];
                        if (!n.compiled) {
                            b(n, {
                                compiled : 1,
                                sign : "",
                                zeroPad : 0,
                                rightJustify : 0,
                                alternative : 0,
                                minWidth : n._minWidth | 0,
                                maxWidth : -1,
                                toUpper : 0,
                                isUnsigned : 0,
                                isInt : 0,
                                isDouble : 0,
                                precision : "." === n.period ? n._precision | 0 : 1
                            });
                            for ( l = n.flags, u = l.length; u--; )
                                switch(o[p=l.charAt(u)]=1,p) {
                                    case " ":
                                        n.sign = " ";
                                        break;
                                    case "+":
                                        n.sign = "+";
                                        break;
                                    case "0":
                                        n.zeroPad = !o["-"];
                                        break;
                                    case "-":
                                        n.rightJustify = 1;
                                        n.zeroPad = 0;
                                        break;
                                    case "#":
                                        n.alternative = 1;
                                        break;
                                    default:
                                        throw Error("Bad formatting flag '" + p + "'");
                                }
                            h(
                            void 0 !== w, "Unexpected specifier '" + n.specifier + "'");
                            w.extend && (b(w, a[w.extend]),
                            delete w.extend);
                            b(n, w)
                        }
                        e(n.setArg, "Function") && n.setArg(n);
                        e(n.setMaxWidth, "Function") && n.setMaxWidth(n);
                        "*" === n._minWidth && (h(q, "* width not supported in mapped formats"), h(isNaN(n.minWidth = parseInt(i[v++])), "The argument for * width at position " + v + " is not a number in " + this._format), 0 > n.minWidth && (n.rightJustify = 1, n.minWidth = -n.minWidth));
                        "*" === n._precision && "." === n.period && (h(q, "* precision not supported in mapped formats"), h(isNaN(n.precision = parseInt(i[v++])), "The argument for * precision at position " + v + " is not a number in " + this._format), 0 > n.precision && (n.precision = 1, n.period = ""));
                        if (n.isInt)
                            "." === n.period && (n.zeroPad = 0), l = parseInt(n.arg), isFinite(l) || (h(!e(n.arg, "Number"), "Format argument '" + n.arg + "' not an integer; parseInt returned " + l), l = 0), 0 > l && (n.isUnsigned || 10 != n.base) && ( l = 4294967295 + l + 1), 0 > l ? (n.arg = (-l).toString(n.base), j(n), n.arg = "-" + n.arg) : (n.arg = l.toString(n.base), l || n.precision ? j(n) : n.arg = "", n.sign && (n.arg = n.sign + n.arg)), 16 === n.base && (n.alternative && (n.arg = "0x" + n.arg), n.arg = n.toUpper ? n.arg.toUpperCase() : n.arg.toLowerCase()), 8 === n.base && n.alternative && "0" != n.arg.charAt(0) && (n.arg = "0" + n.arg);
                        else if (n.isDouble) {
                            "." !== n.period && (n.precision = 6);
                            l = parseFloat(n.arg);
                            isFinite(l) || (h(!e(n.arg, "Number"), "Format argument '" + n.arg + "' not a float; parseFloat returned " + l), l = 0);
                            switch(n.specifier) {
                                case "e":
                                    n.arg = l.toExponential(n.precision);
                                    break;
                                case "f":
                                    n.arg = l.toFixed(n.precision);
                                    break;
                                case "g":
                                    n.arg = 1.0E-4 > Math.abs(l) ? l.toExponential(0 < n.precision ? n.precision - 1 : n.precision) : l.toPrecision(n.precision);
                                    n.alternative || (n.arg = n.arg.replace(/(\..*[^0])0*/, "$1"), n.arg = n.arg.replace(/\.0*e/, "e").replace(/\.0$/, ""));
                                    break;
                                default:
                                    throw Error("Unexpected double notation '" + n.doubleNotation + "'");
                            }
                            n.arg = n.arg.replace(/e\+(\d)$/, "e+0$1").replace(/e\-(\d)$/, "e-0$1");
                            f("opera") && (n.arg = n.arg.replace(/^\./, "0."));
                            n.alternative && (n.arg = n.arg.replace(/^(\d+)$/, "$1."), n.arg = n.arg.replace(/^(\d+)e/, "$1.e"));
                            0 <= l && n.sign && (n.arg = n.sign + n.arg);
                            n.arg = n.toUpper ? n.arg.toUpperCase() : n.arg.toLowerCase()
                        }
                        0 <= n.maxWidth && n.arg.length > n.maxWidth ? n.arg.substring(0, n.maxWidth) : n.zeroPad ? j(n, n.minWidth) : c(n, k.val(
                        void 0, n.minWidth), "          ");
                        s += "" + n.arg
                    }
                });
                return s
            };
            return {
                capitalize : function(a) {
                    a = a || "";
                    return a.substring(0, 1).toUpperCase() + a.substring(1)
                },
                trim : String.prototype.trim ? function(a) {
                    return a.trim()
                } : function(a) {
                    return a.replace(/^\s\s*/, "").replace(/\s\s*$/, "")
                }
            }
        })
    },
    "Ti/Utils" : function() {
        define("Ti/Utils", ["Ti/_/Evented"], function() {
            (function(i) {
                function k(c) {
                    for (var c = c.replace(/\r\n/g, "\n"), j = "", h = 0; h < c.length; h++) {
                        var f = c.charCodeAt(h);
                        128 > f ? j += String.fromCharCode(f) : (127 < f && 2048 > f ? j += String.fromCharCode(f >> 6 | 192) : (j += String.fromCharCode(f >> 12 | 224), j += String.fromCharCode(f >> 6 & 63 | 128)), j += String.fromCharCode(f & 63 | 128))
                    }
                    return j
                }
                Ti._5.EventDriven(i);
                i.base64decode = function(c) {
                    for (var j = "", h, f, e, b, g, a = 0, c = c.replace(/[^A-Za-z0-9\+\/\=]/g, ""); a < c.length; )
                        h = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)), f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)), b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)), g = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(c.charAt(a++)), h = h << 2 | f >> 4, f = (f & 15) << 4 | b >> 2, e = (b & 3) << 6 | g, j += String.fromCharCode(h), 64 != b && (j += String.fromCharCode(f)), 64 != g && (j += String.fromCharCode(e));
                    c = j;
                    j = "";
                    for ( g = c1 = c2 = b = 0; b < c.length; )
                        g = c.charCodeAt(b), 128 > g ? (j += String.fromCharCode(g), b++) : 191 < g && 224 > g ? ( c2 = c.charCodeAt(b + 1), j += String.fromCharCode((g & 31) << 6 | c2 & 63), b += 2) : ( c2 = c.charCodeAt(b + 1), c3 = c.charCodeAt(b + 2), j += String.fromCharCode((g & 15) << 12 | (c2 & 63) << 6 | c3 & 63), b += 3);
                    return j
                };
                i.base64encode = function(c) {
                    for (var j = "", h, f, e, b, g, a, i = 0, c = k(c); i < c.length; )
                        h = c.charCodeAt(i++), f = c.charCodeAt(i++), e = c.charCodeAt(i++), b = h >> 2, h = (h & 3) << 4 | f >> 4, g = (f & 15) << 2 | e >> 6, a = e & 63, isNaN(f) ? g = a = 64 : isNaN(e) && ( a = 64), j = j + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(b) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(g) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(a);
                    return j
                };
                i.md5HexDigest = function(c) {
                    var j = function(a, b) {
                        var e, c, f, g, h;
                        f = a & 2147483648;
                        g = b & 2147483648;
                        e = a & 1073741824;
                        c = b & 1073741824;
                        h = (a & 1073741823) + (b & 1073741823);
                        return e & c ? h ^ 2147483648 ^ f ^ g : e | c ? h & 1073741824 ? h ^ 3221225472 ^ f ^ g : h ^ 1073741824 ^ f ^ g : h ^ f ^ g
                    }, h = function(a, b, e, c, f, g, h) {
                        a = j(a, j(j(b & e | ~b & c, f), h));
                        return j(a << g | a >>> 32 - g, b)
                    }, f = function(a, b, e, c, f, g, h) {
                        a = j(a, j(j(b & c | e & ~c, f), h));
                        return j(a << g | a >>> 32 - g, b)
                    }, e = function(a, b, e, c, f, g, h) {
                        a = j(a, j(j(b ^ e ^ c, f), h));
                        return j(a << g | a >>> 32 - g, b)
                    }, b = function(a, b, e, c, f, g, h) {
                        a = j(a, j(j(e ^ (b | ~c), f), h));
                        return j(a << g | a >>> 32 - g, b)
                    }, g = function(a) {
                        var b = "", e = "", c;
                        for ( c = 0; 3 >= c; c++)
                            e = a >>> 8 * c & 255, e = "0" + e.toString(16), b += e.substr(e.length - 2, 2);
                        return b
                    }, a = [], i, y, u, w, l, q, o, p;
                    str = k(c);
                    a = function(a) {
                        var b, e = a.length;
                        b = e + 8;
                        for (var c = 16 * ((b - b % 64) / 64 + 1), f = Array(c - 1), g = 0, h = 0; h < e; )
                            b = (h - h % 4) / 4, g = 8 * (h % 4), f[b] |= a.charCodeAt(h) << g, h++;
                        b = (h - h % 4) / 4;
                        f[b] |= 128 << 8 * (h % 4);
                        f[c - 2] = e << 3;
                        f[c - 1] = e >>> 29;
                        return f
                    }(str);
                    l = 1732584193;
                    q = 4023233417;
                    o = 2562383102;
                    p = 271733878;
                    for ( c = 0; c < a.length; c += 16)
                        i = l, y = q, u = o, w = p, l = h(l, q, o, p, a[c + 0], 7, 3614090360), p = h(p, l, q, o, a[c + 1], 12, 3905402710), o = h(o, p, l, q, a[c + 2], 17, 606105819), q = h(q, o, p, l, a[c + 3], 22, 3250441966), l = h(l, q, o, p, a[c + 4], 7, 4118548399), p = h(p, l, q, o, a[c + 5], 12, 1200080426), o = h(o, p, l, q, a[c + 6], 17, 2821735955), q = h(q, o, p, l, a[c + 7], 22, 4249261313), l = h(l, q, o, p, a[c + 8], 7, 1770035416), p = h(p, l, q, o, a[c + 9], 12, 2336552879), o = h(o, p, l, q, a[c + 10], 17, 4294925233), q = h(q, o, p, l, a[c + 11], 22, 2304563134), l = h(l, q, o, p, a[c + 12], 7, 1804603682), p = h(p, l, q, o, a[c + 13], 12, 4254626195), o = h(o, p, l, q, a[c + 14], 17, 2792965006), q = h(q, o, p, l, a[c + 15], 22, 1236535329), l = f(l, q, o, p, a[c + 1], 5, 4129170786), p = f(p, l, q, o, a[c + 6], 9, 3225465664), o = f(o, p, l, q, a[c + 11], 14, 643717713), q = f(q, o, p, l, a[c + 0], 20, 3921069994), l = f(l, q, o, p, a[c + 5], 5, 3593408605), p = f(p, l, q, o, a[c + 10], 9, 38016083), o = f(o, p, l, q, a[c + 15], 14, 3634488961), q = f(q, o, p, l, a[c + 4], 20, 3889429448), l = f(l, q, o, p, a[c + 9], 5, 568446438), p = f(p, l, q, o, a[c + 14], 9, 3275163606), o = f(o, p, l, q, a[c + 3], 14, 4107603335), q = f(q, o, p, l, a[c + 8], 20, 1163531501), l = f(l, q, o, p, a[c + 13], 5, 2850285829), p = f(p, l, q, o, a[c + 2], 9, 4243563512), o = f(o, p, l, q, a[c + 7], 14, 1735328473), q = f(q, o, p, l, a[c + 12], 20, 2368359562), l = e(l, q, o, p, a[c + 5], 4, 4294588738), p = e(p, l, q, o, a[c + 8], 11, 2272392833), o = e(o, p, l, q, a[c + 11], 16, 1839030562), q = e(q, o, p, l, a[c + 14], 23, 4259657740), l = e(l, q, o, p, a[c + 1], 4, 2763975236), p = e(p, l, q, o, a[c + 4], 11, 1272893353), o = e(o, p, l, q, a[c + 7], 16, 4139469664), q = e(q, o, p, l, a[c + 10], 23, 3200236656), l = e(l, q, o, p, a[c + 13], 4, 681279174), p = e(p, l, q, o, a[c + 0], 11, 3936430074), o = e(o, p, l, q, a[c + 3], 16, 3572445317), q = e(q, o, p, l, a[c + 6], 23, 76029189), l = e(l, q, o, p, a[c + 9], 4, 3654602809), p = e(p, l, q, o, a[c + 12], 11, 3873151461), o = e(o, p, l, q, a[c + 15], 16, 530742520), q = e(q, o, p, l, a[c + 2], 23, 3299628645), l = b(l, q, o, p, a[c + 0], 6, 4096336452), p = b(p, l, q, o, a[c + 7], 10, 1126891415), o = b(o, p, l, q, a[c + 14], 15, 2878612391), q = b(q, o, p, l, a[c + 5], 21, 4237533241), l = b(l, q, o, p, a[c + 12], 6, 1700485571), p = b(p, l, q, o, a[c + 3], 10, 2399980690), o = b(o, p, l, q, a[c + 10], 15, 4293915773), q = b(q, o, p, l, a[c + 1], 21, 2240044497), l = b(l, q, o, p, a[c + 8], 6, 1873313359), p = b(p, l, q, o, a[c + 15], 10, 4264355552), o = b(o, p, l, q, a[c + 6], 15, 2734768916), q = b(q, o, p, l, a[c + 13], 21, 1309151649), l = b(l, q, o, p, a[c + 4], 6, 4149444226), p = b(p, l, q, o, a[c + 11], 10, 3174756917), o = b(o, p, l, q, a[c + 2], 15, 718787259), q = b(q, o, p, l, a[c + 9], 21, 3951481745), l = j(l, i), q = j(q, y), o = j(o, u), p = j(p, w);
                    return (g(l) + g(q) + g(o) + g(p)).toLowerCase()
                }
            })(Ti._5.createClass("Ti.Utils"))
        })
    },
    "Ti/UI/OptionDialog" : function() {
        define(["Ti/_/declare", "Ti/_/Evented", "Ti/UI"], function(i, k, c) {
            return i("Ti.UI.OptionDialog", k, {
                show : function() {
                    function j(a, f, g) {
                        a = c.createButton({
                            left : 5,
                            right : 5,
                            top : 5,
                            bottom : g,
                            height : "auto",
                            title : a,
                            index : f
                        });
                        f === b.destructive ? a.domNode.className += " TiUIButtonDestructive" : f === b.cancel && (a.domNode.className += " TiUIButtonCancel");
                        e.add(a);
                        a.addEventListener("singletap", function() {
                            h.close();
                            b._optionsWindow =
                            void 0;
                            b.fireEvent("click", {
                                index : f,
                                cancel : b.cancel,
                                destructive : b.destructive
                            })
                        })
                    }

                    var h = this._optionsWindow = c.createWindow(), f = c.createView({
                        backgroundColor : "black",
                        opacity : 0,
                        left : 0,
                        top : 0,
                        right : 0,
                        bottom : 0
                    });
                    h.add(f);
                    var e = c.createView({
                        width : "100%",
                        height : "auto",
                        bottom : 0,
                        backgroundColor : "white",
                        layout : "vertical",
                        opacity : 0
                    });
                    h.add(e);
                    e.add(c.createLabel({
                        text : this.title,
                        font : {
                            fontWeight : "bold"
                        },
                        left : 5,
                        right : 5,
                        top : 5,
                        height : "auto",
                        textAlign : c.TEXT_ALIGNMENT_CENTER
                    }));
                    var b = this, g = this.options, a = 0;
                    if (require.is(g, "Array"))
                        for (; a < g.length; a++)
                            j(g[a], a, a === g.length - 1 ? 5 : 0);
                    h.open();
                    setTimeout(function() {
                        e.animate({
                            bottom : -e._measuredHeight,
                            opacity : 1,
                            duration : 0
                        });
                        f.animate({
                            opacity : 0.5,
                            duration : 150
                        }, function() {
                            setTimeout(function() {
                                e.animate({
                                    bottom : 0,
                                    duration : 150
                                })
                            }, 0)
                        })
                    }, 30)
                },
                properties : {
                    cancel : -1,
                    destructive : -1,
                    options :
                    void 0,
                    title : "",
                    titleid : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.optionsDialog#.titleid" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.optionsDialog#.titleid" is not implemented yet.');
                            return c
                        }
                    }
                }
            })
        })
    },
    "Ti/_/Gestures/TouchMove" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.TouchMove", c, {
                name : "touchmove",
                processTouchMoveEvent : function(c, h) {
                    if (!h._isGestureBlocked(this.name))
                        for (var f = 0; f < c.changedTouches.length; f++)
                            k.hitch(h, h._handleTouchEvent(this.name, {
                                x : c.changedTouches[f].clientX,
                                y : c.changedTouches[f].clientY
                            }))
                }
            })
        })
    },
    "Ti/_/UI/Element" : function() {
        define("Ti/_/browser,Ti/_/css,Ti/_/declare,Ti/_/dom,Ti/_/event,Ti/_/lang,Ti/_/style,Ti/_/Evented,Ti/UI,Ti/_/Gestures/DoubleTap,Ti/_/Gestures/LongPress,Ti/_/Gestures/Pinch,Ti/_/Gestures/SingleTap,Ti/_/Gestures/Swipe,Ti/_/Gestures/TouchCancel,Ti/_/Gestures/TouchEnd,Ti/_/Gestures/TouchMove,Ti/_/Gestures/TouchStart,Ti/_/Gestures/TwoFingerTap".split(","), function(i, k, c, j, h, f, e, b, g, a, r, y, u, w, l, q, o, p, v) {
            var s = j.unitize, x = j.computeSize, n = require.on, z = e.set, t = f.isDef, C = f.val, A = require.is, J = {webkit:"webkitTransitionEnd",trident:"msTransitionEnd",gecko:"transitionend",presto:"oTransitionEnd"}[i.runtime] || "transitionEnd", K = ["ease", "ease-in", "ease-in-out", "ease-out", "linear"], i = {
                post : "_doBackground"
            }, B = {
                post : function() {
                    this._parent && this._parent._triggerLayout()
                }
            };
            return c("Ti._.UI.Element", b, {
                domType : null,
                domNode : null,
                _alive : 1,
                constructor : function(b) {
                    function e(a, b) {
                        var f, g = s[a], a = "Touch" + a + "Event", h = b.changedTouches;
                        if (this._preventDefaultTouchEvent)
                            for (f in this._preventDefaultTouchEvent && b.preventDefault && b.preventDefault(), h)
                            h[f].preventDefault && h[f].preventDefault();
                        t || require.mix(b, {
                            touches : "mouseup" === b.type ? [] : [b],
                            targetTouches : [],
                            changedTouches : [b]
                        });
                        for (f in g)g[f]["process"+a](b, c);
                        for (f in g)g[f]["finalize"+a]()
                    }

                    var c = this, g = this.domNode = this._setFocusNode(j.create(this.domType || "div", {
                        className : "TiUIElement " + k.clean(this.declaredClass),
                        "data-widget-id" : this.widgetId
                    })), i = this._gestureRecognizers = {
                        Pinch : new y,
                        Swipe : new w,
                        TwoFingerTap : new v,
                        DoubleTap : new a,
                        LongPress : new r,
                        SingleTap : new u,
                        TouchStart : new p,
                        TouchEnd : new q,
                        TouchMove : new o,
                        TouchCancel : new l
                    }, s = {
                        Start : i,
                        Move : i,
                        End : i,
                        Cancel : i
                    }, t = "ontouchstart" in window, i = f.hitch(this, "_doBackground");
                    require.has("devmode") && b && b._debug && j.attr.set(g, "data-debug", b._debug);
                    this._touching = !1;
                    n(this.domNode, t ? "touchstart" : "mousedown", function(a) {
                        var b = [n(window, t ? "touchmove" : "mousemove", function(a) {
                            (t || c._touching) && e("Move", a)
                        }), n(window, t ? "touchend" : "mouseup", function(a) {
                            c._touching = !1;
                            e("End", a);
                            h.off(b)
                        }), t && n(window, "touchcancel", function(a) {
                            e("Cancel", a);
                            h.off(b)
                        })];
                        c._touching = !0;
                        e("Start", a)
                    });
                    this.addEventListener("touchstart", i);
                    this.addEventListener("touchend", i)
                },
                destroy : function() {
                    this._alive && (this.parent && this.parent.remove(this), this.domNode && (j.destroy(this.domNode), this.domNode = null));
                    b.destroy.apply(this, arguments)
                },
                _markedForLayout : !1,
                _triggerLayout : function(a) {
                    if (!this._markedForLayout || a) {
                        for (var b = !1, e = this; e; ) {
                            if (e === g._container) {
                                b = !0;
                                break
                            }
                            e = e._parent
                        }
                        if (b) {
                            for ( b = this; null != b._parent && b._hasAutoDimensions(); )
                                b = b._parent;
                            b._markedForLayout = !0;
                            g._triggerLayout(a)
                        }
                    }
                },
                _triggerParentLayout : function() {
                    this._parent && this._parent._triggerLayout()
                },
                _hasAutoDimensions : function() {
                    return "auto" === this.width || !t(this.width) && "auto" === this._defaultWidth || "auto" === this.height || !t(this.height) && "auto" === this._defaultHeight
                },
                _doLayout : function(a, b, e, c, f, g) {
                    this._originX = a;
                    this._originY = b;
                    this._centerHDefault = f;
                    this._centerVDefault = g;
                    a = this._computeDimensions(e, c, this.left, this.top, this.right, this.bottom, this.center && this.center.x, this.center && this.center.y, this.width, this.height, this.borderWidth);
                    b = {
                        zIndex : this.zIndex | 0
                    };
                    this._measuredLeft != a.left && (this._measuredLeft = a.left, t(this._measuredLeft) && (b.left = s(this._measuredLeft)));
                    this._measuredTop != a.top && (this._measuredTop = a.top, t(this._measuredTop) && (b.top = s(this._measuredTop)));
                    this._measuredWidth != a.width && (this._measuredWidth = a.width, t(this._measuredWidth) && (b.width = s(this._measuredWidth)));
                    this._measuredHeight != a.height && (this._measuredHeight = a.height, t(this._measuredHeight) && (b.height = s(this._measuredHeight)));
                    this._measuredRightPadding = a.rightPadding;
                    this._measuredBottomPadding = a.bottomPadding;
                    this._measuredBorderWidth = a.borderWidth;
                    z(this.domNode, b);
                    this._markedForLayout = !1;
                    this._doAnimationAfterLayout && (this._doAnimationAfterLayout = !1, this._doAnimation())
                },
                _computeDimensions : function(a, b, e, c, f, g, h, j, i, k, r) {
                    var e = x(e, a, 1), c = x(c, b, 1), f = x(f, a), g = x(g, b), h = h && x(h, a, 1), j = j && x(j, b, 1), i = x(i, a), k = x(k, b), l = t(f) ? a - f :
                    void 0, n = t(g) ? b - g :
                    void 0;
                    if (t(i))
                        t(e) ? l =
                        void 0 : t(h) ? "auto" === i ? e = "calculateAuto" : ( e = h - i / 2, l =
                        void 0) : t(l) || ( e = "calculateAuto");
                    else if (t(h))
                        t(e) ? ( i = 2 * (h - e), l =
                        void 0) : i = t(l) ? 2 * (l - h) : x(this._defaultWidth, a);
                    else if (!t(e) || !t(l))
                        i = x(this._defaultWidth, a), !t(e) && !t(l) && ( e = "calculateAuto");
                    if (t(k))
                        t(c) ? n =
                        void 0 : t(j) ? "auto" === k ? c = "calculateAuto" : ( c = j - k / 2, n =
                        void 0) : t(n) || ( c = "calculateAuto");
                    else if (t(j))
                        t(c) ? ( k = 2 * (j - c), n =
                        void 0) : k = t(n) ? 2 * (n - j) : x(this._defaultHeight, b);
                    else if (!t(c) || !t(n))
                        k = x(this._defaultHeight, b), !t(c) && !t(n) && ( c = "calculateAuto");
                    r = x(r);
                    j = h = !1;
                    r = A(r, "Number") ? r : 0;
                    "auto" != i ? (t(l) && (t(e) ? i = l - e : e = l - i), i -= 2 * r) : t(l) && ( h = !0);
                    "auto" != k ? (t(n) && (t(c) ? k = n - c : c = n - k), k -= 2 * r) : t(n) && ( j = !0);
                    if (this._getContentWidth)
                        "auto" == i && ( i = this._getContentWidth()), "auto" == k && ( k = this._getContentHeight());
                    else {
                        var o = this._layout._doLayout(this, A(i, "Number") ? i : a, A(k, "Number") ? k : b);
                        "auto" == i && ( i = o.width);
                        "auto" == k && ( k = o.height)
                    }
                    h && (t(l) && (t(e) ? i = l - e : e = l - i), i -= 2 * r);
                    j && (t(n) && (t(c) ? k = n - c : c = n - k), k -= 2 * r);
                    "calculateAuto" == e && ( e = this._centerHDefault && "auto" !== a ? x("50%", a) - (A(i, "Number") ? i + 2 * r : 0) / 2 : 0);
                    "calculateAuto" == c && ( c = this._centerVDefault && "auto" !== b ? x("50%", b) - (A(k, "Number") ? k + 2 * r : 0) / 2 : 0);
                    e += this._originX;
                    c += this._originY;
                    a = A(f, "Number") ? f : 0;
                    g = A(g, "Number") ? g : 0;
                    if (!A(e, "Number") || !A(c, "Number") || !A(a, "Number") || !A(g, "Number") || !A(i, "Number") || !A(k, "Number"))
                        throw "Invalid layout";
                    return {
                        left : e,
                        top : c,
                        rightPadding : a,
                        bottomPadding : g,
                        width : i,
                        height : k,
                        borderWidth : r
                    }
                },
                _getContentOffset : function() {
                    return {
                        x : 0,
                        y : 0
                    }
                },
                _preventDefaultTouchEvent : !0,
                _isGestureBlocked : function(a) {
                    for (var b in this._gestureRecognizers) {
                        var e = this._gestureRecognizers[b].blocking, c;
                        for (c in e)
                        if (a === e[c])
                            return !0
                    }
                    return !1
                },
                _handleTouchEvent : function(a, b) {
                    this.enabled && this.fireEvent(a, b)
                },
                _doBackground : function(a) {
                    var a = a || {}, a = (a.type || "").match(/mouse(over|out)/), b = this._focus.node, c = this.backgroundImage || "none", f = this.backgroundColor;
                    this._touching && ( f = this.backgroundSelectedColor || f, c = this.backgroundSelectedImage || c);
                    a && (this._over = "over" === a[1]);
                    !this._touching && this.focusable && this._over && ( f = this.backgroundFocusedColor || f, c = this.backgroundFocusedImage || c);
                    this.enabled || ( f = this.backgroundDisabledColor || f, c = this.backgroundDisabledImage || c);
                    z(b, {
                        backgroundColor : f || (c && "none" !== c ? "transparent" : ""),
                        backgroundImage : e.url(c)
                    })
                },
                _setFocusNode : function(a) {
                    var b = this._focus = this._focus || {};
                    b.node !== a && (b.node && (h.off(b.evts), h.off(b.evtsMore)), b.node = a, b.evts = [n(a, "focus", this, "_doBackground"), n(a, "blur", this, "_doBackground")]);
                    return a
                },
                show : function() {
                    this.visible = !0
                },
                hide : function() {
                    this.visible = !1
                },
                animate : function(a, b) {
                    this._animationData = a;
                    this._animationCallback = b;
                    g._layoutInProgress ? this._doAnimationAfterLayout = !0 : this._doAnimation()
                },
                _doAnimation : function() {
                    var a = this._animationData || {}, b = this._animationCallback;
                    curve = K[a.curve] || "ease";
                    fn = f.hitch(this, function() {
                        var b = "";
                        void 0 !== a.backgroundColor && (obj.backgroundColor = a.backgroundColor);
                        void 0 !== a.opacity && z(this.domNode, "opacity", a.opacity);
                        z(this.domNode, "display",
                        void 0 !== a.visible && !a.visible ? "none" : "");
                        var e = this._computeDimensions(this._parent ? this._parent._measuredWidth : "auto", this._parent ? this._parent._measuredHeight : "auto", C(a.left, this.left), C(a.top, this.top), C(a.right, this.right), C(a.bottom, this.bottom), t(a.center) ? a.center.x : t(this.center) ? this.center.x :
                        void 0, t(a.center) ? a.center.y : t(this.center) ? this.center.y :
                        void 0, C(a.width, this.width), C(a.height, this.height), C(a.borderWidth, this.borderWidth));
                        z(this.domNode, {
                            left : s(e.left),
                            top : s(e.top),
                            width : s(e.width),
                            height : s(e.height),
                            borderWidth : s(e.borderWidth)
                        });
                        !t(a.zIndex) && z(this.domNode, "zIndex", a.zIndex);
                        a.transform && (this._curTransform = this._curTransform ? this._curTransform.multiply(a.transform) : a.transform, b = this._curTransform.toCSS());
                        z(this.domNode, "transform", b)
                    });
                    a.duration = a.duration || 0;
                    a.delay = a.delay || 0;
                    a.transform && z("transform", "");
                    a.start && a.start();
                    0 < a.duration ? (z(this.domNode, "transition", "all " + a.duration + "ms " + curve + (a.delay ? " " + a.delay + "ms" : "")), n.once(window, J, f.hitch(this, function() {
                        this._destroyed || (z(this.domNode, "transition", ""), A(a.complete, "Function") && a.complete(), A(b, "Function") && b())
                    })), setTimeout(fn, 0)) : (fn(), A(a.complete, "Function") && a.complete(), A(b, "Function") && b())
                },
                _setTouchEnabled : function(a) {
                    z(this.domNode, "pointerEvents", a ? "auto" : "none");
                    if (!a)
                        for (var b in this.children)
                        this.children[b]._setTouchEnabled(a)
                },
                _measuredLeft : 0,
                _measuredTop : 0,
                _measuredRightPadding : 0,
                _measuredBottomPadding : 0,
                _measuredWidth : 0,
                _measuredHeight : 0,
                properties : {
                    backgroundColor : i,
                    backgroundDisabledColor : i,
                    backgroundDisabledImage : i,
                    backgroundFocusedColor : i,
                    backgroundFocusedImage : i,
                    backgroundGradient : {
                        set : function(a) {
                            var a = a || {}, b = [], e = a.colors || [], c = a.type, f = a.startPoint, g = a.endPoint;
                            if ("linear" === c)
                                f && g && f.x != g.x && f.y != g.y && b.concat([s(a.startPoint.x) + " " + s(a.startPoint.y), s(a.endPoint.x) + " " + s(a.startPoint.y)]);
                            else if ("radial" === c)
                                f = a.startRadius, g = a.endRadius, f && g && b.push(s(f) + " " + s(g)), b.push("ellipse closest-side");
                            else {
                                z(this.domNode, "backgroundImage", "none");
                                return
                            }
                            require.each(e, function(a) {
                                b.push(a.color ? a.color + " " + 100 * a.position + "%" : a)
                            });
                            b = c + "-gradient(" + b.join(",") + ")";
                            require.each(require.config.vendorPrefixes.css, function(a) {
                                z(this.domNode, "backgroundImage", a + b)
                            });
                            return a
                        }
                    },
                    backgroundImage : i,
                    backgroundSelectedColor : i,
                    backgroundSelectedImage : i,
                    borderColor : {
                        set : function(a) {
                            z(this.domNode, "borderColor", a) ? (this.borderWidth | 0 || (this.borderWidth = 1), z(this.domNode, "borderStyle", "solid")) : this.borderWidth = 0;
                            return a
                        }
                    },
                    borderRadius : {
                        set : function(a) {
                            z(this.domNode, "borderRadius", s(a));
                            return a
                        }
                    },
                    borderWidth : {
                        set : function(a) {
                            var b = {
                                borderWidth : s(a),
                                borderStyle : "solid"
                            };
                            this.borderColor || (b.borderColor = "black");
                            z(this.domNode, b);
                            return a
                        }
                    },
                    bottom : B,
                    center : B,
                    color : {
                        set : function(a) {
                            return z(this.domNode, "color", a)
                        }
                    },
                    enabled : {
                        post : "_doBackground",
                        set : function(a) {
                            this._focus.node.disabled = !a;
                            return a
                        },
                        value : !0
                    },
                    focusable : {
                        value : !1,
                        set : function(a) {
                            j.attr[a?"add":"remove"](this._focus.node, "tabindex", 0);
                            return a
                        }
                    },
                    height : B,
                    left : B,
                    opacity : {
                        set : function(a) {
                            return z(this.domNode, "opacity", a)
                        }
                    },
                    visible : {
                        set : function(a, b) {
                            a !== b && (!a && (this._lastDisplay = e.get(this.domNode, "display")), z(this.domNode, "display", a ? this._lastDisplay || "" : "none"), a && this._triggerLayout());
                            return a
                        }
                    },
                    right : B,
                    size : {
                        set : function(a) {
                            console.debug('Property "Titanium._.UI.Element#.size" is not implemented yet.');
                            return a
                        }
                    },
                    touchEnabled : {
                        set : function(a) {
                            this._setTouchEnabled(a);
                            return a
                        },
                        value : !0
                    },
                    top : B,
                    transform : {
                        set : function(a) {
                            z(this.domNode, "transform", a.toCSS());
                            return this._curTransform = a
                        }
                    },
                    width : B,
                    zIndex : B
                }
            })
        })
    },
    "Ti/UI/Label" : function() {
        define("Ti/_/declare,Ti/_/UI/FontWidget,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/_/lang,Ti/UI".split(","), function(i, k, c, j, h, f, e) {
            var b = h.set, g = c.unitize;
            return i("Ti.UI.Label", k, {
                constructor : function() {
                    this.touchEnabled = !1;
                    this.textAlignerDiv = c.create("div", {
                        className : j.clean("TiUILabelTextAligner")
                    }, this.domNode);
                    b(this.textAlignerDiv, "display", "-webkit-box");
                    b(this.textAlignerDiv, {
                        display : "-moz-box",
                        boxOrient : "vertical",
                        boxPack : "center",
                        width : "100%",
                        height : "100%",
                        overflow : "hidden"
                    });
                    this.textContainerDiv = c.create("div", {
                        className : j.clean("TiUILabelTextContainer"),
                        style : {
                            textAlign : "left",
                            textOverflow : "ellipsis",
                            overflowX : "hidden",
                            width : "100%",
                            maxHeight : "100%",
                            userSelect : "none",
                            whiteSpace : "nowrap"
                        }
                    }, this.textAlignerDiv);
                    this._addStyleableDomNode(this.textContainerDiv)
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                _getContentWidth : function() {
                    return this._measureText(this.text, this.textContainerDiv).width
                },
                _getContentHeight : function() {
                    return this._measureText(this.text, this.textContainerDiv).height
                },
                _setTouchEnabled : function(a) {
                    k.prototype._setTouchEnabled.apply(this, arguments);
                    var e = a ? "auto" : "none";
                    b(this.textAlignerDiv, "pointerEvents", e);
                    b(this.textContainerDiv, "pointerEvents", e)
                },
                _setTextShadow : function() {
                    var a = this.shadowColor && "" !== this.shadowColor ? this.shadowColor :
                    void 0;
                    this.shadowOffset || a ? b(this.textContainerDiv, "textShadow", (this.shadowOffset ? g(this.shadowOffset.x) + " " + g(this.shadowOffset.y) : "0px 0px") + " 0.1em " + f.val(a, "black")) : b(this.textContainerDiv, "textShadow", "")
                },
                properties : {
                    color : {
                        set : function(a) {
                            return this.textContainerDiv.style.color = a
                        }
                    },
                    ellipsize : {
                        set : function(a) {
                            b(this.textContainerDiv, "textOverflow", a ? "ellipsis" : "clip");
                            return a
                        },
                        value : !0
                    },
                    html : {
                        set : function(a) {
                            this.textContainerDiv.innerHTML = a;
                            this._hasAutoDimensions() && this._triggerParentLayout();
                            return a
                        }
                    },
                    shadowColor : {
                        post : function(a) {
                            this._setTextShadow();
                            return a
                        }
                    },
                    shadowOffset : {
                        post : function(a) {
                            this._setTextShadow();
                            return a
                        }
                    },
                    text : {
                        set : function(a) {
                            this.textContainerDiv.innerHTML = a;
                            this._hasAutoDimensions() && this._triggerParentLayout();
                            return a
                        }
                    },
                    textAlign : {
                        set : function(a) {
                            var b = "";
                            switch(a) {
                                case e.TEXT_ALIGNMENT_LEFT:
                                    b = "left";
                                    break;
                                case e.TEXT_ALIGNMENT_CENTER:
                                    b = "center";
                                    break;
                                case e.TEXT_ALIGNMENT_RIGHT:
                                    b = "right"
                            }
                            this.textContainerDiv.style.textAlign = b;
                            return a
                        },
                        value : e.TEXT_ALIGNMENT_LEFT
                    },
                    textid : {
                        get : function(a) {
                            console.debug('Property "Titanium.UI.Label#.textid" is not implemented yet.');
                            return a
                        },
                        set : function(a) {
                            console.debug('Property "Titanium.UI.Label#.textid" is not implemented yet.');
                            return a
                        }
                    },
                    wordWrap : {
                        set : function(a) {
                            b(this.textContainerDiv, "whiteSpace", a ? "normal" : "nowrap");
                            return a
                        },
                        value : !1
                    }
                }
            })
        })
    },
    "Ti/_/Layouts" : function() {
        define(["Ti/_/Layouts/Absolute", "Ti/_/Layouts/Horizontal", "Ti/_/Layouts/Vertical"], function(i, k, c) {
            return {
                Absolute : i,
                Horizontal : k,
                Vertical : c
            }
        })
    },
    "Ti/UI/Window" : function() {
        define(["Ti/_/declare", "Ti/Gesture", "Ti/_/UI/SuperView", "Ti/UI"], function(i, k, c, j) {
            return i("Ti.UI.Window", c, {
                _defaultWidth : "100%",
                _defaultHeight : "100%",
                postscript : function() {
                    if (this.url) {
                        var c = j.currentWindow;
                        j._setWindow(this);
                        require("Ti/_/include!sandbox!" + this.url);
                        j._setWindow(c)
                    }
                },
                open : function(h) {
                    this.modal && j._addWindow(this._modalWin = j.createView({
                        backgroundColor : j.backgroundColor,
                        backgroundImage : j.backgroundImage
                    })).show();
                    c.prototype.open.apply(this, h)
                },
                close : function(h) {
                    var f = this._modalWin;
                    f && (j._removeWindow(f).destroy(), this._modalWin = null);
                    c.prototype.close.apply(this, h)
                },
                constants : {
                    url :
                    void 0
                },
                properties : {
                    modal :
                    void 0,
                    orientation : {
                        get : function() {
                            return k.orientation
                        }
                    },
                    title : {
                        set : function(c) {
                            return this.setWindowTitle(c)
                        }
                    },
                    titleid : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.Window#.titleid" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.Window#.titleid" is not implemented yet.');
                            return c
                        }
                    }
                }
            })
        })
    },
    "Ti/Platform" : function() {
        define(["Ti/_", "Ti/_/browser", "Ti/_/Evented", "Ti/_/lang"], function(i, k, c, j) {
            return j.setObject("Ti.Platform", c, {
                createUUID : i.uuid,
                canOpenURL : function() {
                    return !0
                },
                openURL : function(c) {
                    var f = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?/.exec(c);
                    (/^([tel|sms|mailto])/.test(c) || /^([\/?#]|[\w\d-]+^:[\w\d]+^@)/.test(f[1])) && !/^(localhost)/.test(c) ? setTimeout(function() {
                        window.location.href = c
                    }, 1) : window.open(c)
                },
                constants : {
                    BATTERY_STATE_CHARGING : 1,
                    BATTERY_STATE_FULL : 2,
                    BATTERY_STATE_UNKNOWN : -1,
                    BATTERY_STATE_UNPLUGGED : 0,
                    address : null,
                    architecture : null,
                    availableMemory : null,
                    batteryLevel : null,
                    batteryMonitoring : null,
                    batteryState : this.BATTERY_STATE_UNKNOWN,
                    isBrowser : !0,
                    locale : navigator.language,
                    macaddress : null,
                    model : null,
                    name : navigator.userAgent,
                    netmask : null,
                    osname : "mobileweb",
                    ostype : navigator.platform,
                    runtime : k.runtime,
                    processorCount : null,
                    username : null,
                    version : require.config.ti.version
                }
            })
        })
    },
    "Ti/_/style" : function() {
        define(["Ti/_", "Ti/_/string"], function(i, k) {
            function c(h, f, e) {
                var b = 0, g, a;
                if (h)
                    if (2 < arguments.length)
                        for (; b < j.length; ) {
                            if ( g = j[b++], g += g ? a || ( a = k.capitalize(f)) : f, g in h.style)
                                return require.each(require.is(e, "Array") ? e : [e], function(a) {
                                    h.style[g] = a
                                }), e
                        }
                    else
                        for (g in f)c(h, g, f[g]);
                return h
            }

            var j = require.config.vendorPrefixes.dom;
            return {
                url : function(c) {
                    return !c || "none" === c ? "" : /^url\(/.test(c) ? c : "url(" + i.getAbsolutePath(c) + ")"
                },
                get : function(c, f) {
                    if (require.is(f, "Array")) {
                        for (var e = 0; e < f.length; e++)
                            f[e] = c.style[f[e]];
                        return f
                    }
                    return c.style[f]
                },
                set : c
            }
        })
    },
    "Ti/UI/ScrollableView" : function() {
        define("Ti/_/declare,Ti/_/UI/Widget,Ti/_/lang,Ti/_/dom,Ti/_/style,Ti/UI".split(","), function(i, k, c, j, h, f) {
            var e = h.set, b = require.is, g = j.unitize;
            return i("Ti.UI.ScrollableView", k, {
                _velocityThreshold : 0.4,
                _minimumFlickDistanceScaleFactor : 15,
                _minimumDragDistanceScaleFactor : 2,
                constructor : function() {
                    this._contentContainer = f.createView({
                        left : 0,
                        top : 0,
                        width : "100%",
                        height : "100%"
                    });
                    e(this._contentContainer.domNode, "overflow", "hidden");
                    this.add(this._contentContainer);
                    this.add(this._pagingControlContainer = f.createView({
                        width : "100%",
                        height : 20,
                        bottom : 0,
                        backgroundColor : "black",
                        opacity : 0,
                        touchEnabled : !1
                    }));
                    this._pagingControlContainer.add(this._pagingControlContentContainer = f.createView({
                        width : "auto",
                        height : "100%",
                        top : 0,
                        touchEnabled : !1
                    }));
                    this._viewToRemoveAfterScroll = -1;
                    var a, b, h = !1, j, i, k;
                    this.addEventListener("touchend", function(a) {
                        if (!i && h) {
                            var e = this._measuredWidth, g = j.indexOf(this.views[this.currentPage]) * -e;
                            b.animate({
                                duration : 10 * ((300 + 0.2 * e) / (e - Math.abs(a._distance))),
                                left : g,
                                curve : f.ANIMATION_CURVE_EASE_OUT
                            }, c.hitch(this, function() {
                                this._contentContainer._removeAllChildren();
                                this._contentContainer.add(this.views[this.currentPage])
                            }))
                        }
                    });
                    this.addEventListener("swipe", function(q) {
                        var o = this._measuredWidth;
                        if (!h) {
                            h = !0;
                            i = !1;
                            k = (new Date).getTime();
                            a = 0;
                            j = [];
                            0 < this.currentPage && (j.push(this.views[this.currentPage - 1]), a = -o);
                            j.push(this.views[this.currentPage]);
                            this.currentPage < this.views.length - 1 && j.push(this.views[this.currentPage + 1]);
                            b = f.createView({
                                width : g(j.length * o),
                                height : "100%",
                                layout : "absolute",
                                left : a,
                                top : 0
                            });
                            this._contentContainer._removeAllChildren();
                            for (var p = 0; p < j.length; p++) {
                                var v = f.createView({
                                    left : g(p * o),
                                    top : 0,
                                    width : g(o),
                                    height : "100%",
                                    layout : "horizontal"
                                });
                                e(v.domNode, "overflow", "hidden");
                                v.add(j[p]);
                                b.add(v)
                            }
                            b.left = g(a);
                            this._contentContainer.add(b);
                            this._triggerLayout(!0)
                        }
                        p = a + q._distance;
                        p = 0 > p ? p > -b._measuredWidth + o ? p : -b._measuredWidth + o : 0;
                        b.domNode.style.left = g(p);
                        if (q._finishedSwiping) {
                            h = !1;
                            i = !0;
                            var v = Math.abs(q._distance / ((new Date).getTime() - k)) > this._velocityThreshold ? this._minimumFlickDistanceScaleFactor : this._minimumDragDistanceScaleFactor, s = this.currentPage, x = a;
                            q._distance > o / v && 0 < this.currentPage ? ( s = this.currentPage - 1, x = 0) : q._distance < -o / v && this.currentPage < this.views.length - 1 && ( s = this.currentPage + 1, x = 3 === j.length ? -2 * o : -o);
                            var n = this, z = function() {
                                n._contentContainer._removeAllChildren();
                                n._contentContainer.add(n.views[s]);
                                n._triggerLayout(!0);
                                n.currentPage !== s && n.fireEvent("scroll", {
                                    currentPage : s,
                                    view : n.views[s],
                                    x : q.x,
                                    y : q.y
                                });
                                n.properties.__values__.currentPage = s
                            };
                            this._updatePagingControl(s);
                            0 == p || p == -b._measuredWidth + o ? z() : b.animate({
                                duration : 200 + 10 * (0.2 * o / (o - Math.abs(q._distance))),
                                left : x,
                                curve : f.ANIMATION_CURVE_EASE_OUT
                            }, c.hitch(this, function() {
                                z()
                            }))
                        }
                    })
                },
                addView : function(a) {
                    a && (this.views.push(a), 1 == this.views.length && (this.properties.__values__.currentPage = 0, this._contentContainer._removeAllChildren(), this._contentContainer.add(a)), this._updatePagingControl(this.currentPage))
                },
                removeView : function(a) {
                    a = b(a, "Number") ? a : this.views.indexOf(a);
                    0 > a || a >= this.views.length || (a == this.currentPage ? 1 == this.views.length ? (this._contentContainer._removeAllChildren(), this._removeViewFromList(a)) : (this._viewToRemoveAfterScroll = a, this.scrollToView(a == this.views.length - 1 ? --a : ++a)) : this._removeViewFromList(a))
                },
                _removeViewFromList : function(a) {
                    this.views.splice(a, 1);
                    a < this.currentPage && this.properties.__values__.currentPage--;
                    this._updatePagingControl(this.currentPage)
                },
                scrollToView : function(a) {
                    var h = b(a, "Number") ? a : this.views.indexOf(a);
                    if (!(0 > h || h >= this.views.length || h == this.currentPage))
                        if (this._contentContainer.domNode.offsetWidth) {
                            var j = this._measuredWidth, i = [], a = -1, k = 0;
                            if (h > this.currentPage)
                                for (var l = this.currentPage; l <= h; l++)
                                    i.push(this.views[l]);
                            else {
                                for ( l = h; l <= this.currentPage; l++)
                                    i.push(this.views[l]);
                                k = -(i.length - 1) * j;
                                a = 1
                            }
                            var q = f.createView({
                                width : g(i.length * j),
                                height : "100%",
                                layout : "absolute",
                                left : k,
                                top : 0
                            });
                            this._contentContainer._removeAllChildren();
                            for ( l = 0; l < i.length; l++) {
                                var o = f.createView({
                                    left : g(l * j),
                                    top : 0,
                                    width : g(j),
                                    height : "100%",
                                    layout : "horizontal"
                                });
                                e(o.domNode, "overflow", "hidden");
                                o.add(i[l]);
                                q.add(o)
                            }
                            q.left = g(k);
                            this._contentContainer.add(q);
                            this._triggerLayout(!0);
                            l = 300 + 0.2 * j;
                            j *= i.length - 1;
                            this._updatePagingControl(h);
                            q.animate({
                                duration : l,
                                left : k + a * j,
                                curve : f.ANIMATION_CURVE_EASE_IN_OUT
                            }, c.hitch(this, function() {
                                this._contentContainer._removeAllChildren();
                                this._contentContainer.add(this.views[h]);
                                this._triggerLayout(!0);
                                this.properties.__values__.currentPage = h;
                                -1 != this._viewToRemoveAfterScroll && (this._removeViewFromList(this._viewToRemoveAfterScroll), this._viewToRemoveAfterScroll = -1);
                                this.fireEvent("scroll", {
                                    currentPage : h,
                                    view : this.views[h]
                                })
                            }))
                        } else
                            this._contentContainer._removeAllChildren(), this._contentContainer.add(this.views[h])
                },
                _showPagingControl : function() {
                    this.showPagingControl ? this._isPagingControlActive || (this._isPagingControlActive = !0, this._pagingControlContainer.animate({
                        duration : 250,
                        opacity : 0.75
                    }), 0 < this.pagingControlTimeout && setTimeout(c.hitch(this, function() {
                        this._pagingControlContainer.animate({
                            duration : 750,
                            opacity : 0
                        });
                        this._isPagingControlActive = !1
                    }), this.pagingControlTimeout)) : this._pagingControlContainer.opacity = 0
                },
                _updatePagingControl : function(a, b) {
                    this._pagingControlContentContainer._removeAllChildren();
                    for (var c = this.pagingControlHeight / 2, h = 0; h < this.views.length; h++) {
                        var j = f.createView({
                            width : c,
                            height : c,
                            top : c / 2,
                            left : 2 * h * c,
                            backgroundColor : h === a ? "white" : "grey"
                        });
                        e(j.domNode, "borderRadius", g(c / 2));
                        this._pagingControlContentContainer.add(j)
                    }
                    !b && this._showPagingControl()
                },
                _defaultWidth : "100%",
                _defaultHeight : "100%",
                properties : {
                    currentPage : {
                        set : function(a, b) {
                            return 0 <= a && a < this.views.length ? (this.scrollToView(a), a) : b
                        }
                    },
                    pagingControlColor : {
                        set : function(a) {
                            return this._pagingControlContainer.backgroundColor = a
                        },
                        value : "black"
                    },
                    pagingControlHeight : {
                        set : function(a) {
                            return this._pagingControlContainer.height = a
                        },
                        value : 20
                    },
                    pagingControlTimeout : {
                        set : function(a) {
                            0 == this.pagingControlTimeout && this._hidePagingControl();
                            return a
                        },
                        value : 1250
                    },
                    showPagingControl : {
                        set : function(a) {
                            0 == this.pagingControlTimeout && this._hidePagingControl();
                            return a
                        },
                        value : !1
                    },
                    views : {
                        set : function(a, e) {
                            if (b(a, "Array"))
                                return 0 == e.length && 0 < a.length && (this._contentContainer._removeAllChildren(), this._contentContainer.add(a[0])), this.properties.__values__.currentPage = 0, a
                        },
                        post : function() {
                            this._updatePagingControl(this.currentPage, !0)
                        },
                        value : []
                    }
                }
            })
        })
    },
    "Ti/UI/ActivityIndicator" : function() {
        define(["Ti/_/declare", "Ti/_/UI/Element"], function(i, k) {
            return i("Ti.UI.ActivityIndicator", k, {
                show : function() {
                    console.debug('Method "Titanium.UI.ActivityIndicator#.show" is not implemented yet.')
                },
                hide : function() {
                    console.debug('Method "Titanium.UI.ActivityIndicator#.hide" is not implemented yet.')
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                _getContentWidth : function() {
                    console.debug('Property "Titanium.UI.ActivityIndicator#._getContentWidth" is not implemented yet.')
                },
                _getContentHeight : function() {
                    console.debug('Property "Titanium.UI.ActivityIndicator#._getContentHeight" is not implemented yet.')
                },
                properties : {
                    color : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.color" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.color" is not implemented yet.');
                            return c
                        }
                    },
                    font : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.font" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.font" is not implemented yet.');
                            return c
                        }
                    },
                    message : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.message" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.message" is not implemented yet.');
                            return c
                        }
                    },
                    messageid : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.messageid" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.ActivityIndicator#.messageid" is not implemented yet.');
                            return c
                        }
                    }
                }
            })
        })
    },
    "Ti/Facebook" : function() {
        define("Ti/Facebook", ["Ti/_/Evented"], function() {
            (function(i) {
                function k() {
                    FB.init({
                        appId : b,
                        status : !1,
                        cookie : !0,
                        oauth : !0,
                        xfbml : !0
                    });
                    FB.getLoginStatus(function(a) {
                        f = !0;
                        "connected" == a.status && c(a) || e && h()
                    })
                }

                function c(a) {
                    var b = a.authResponse;
                    if (b)
                        return loggedIn = !0, i.uid = b.userID, i.expirationDate = new Date((new Date).getTime() + 1E3 * b.expiresIn), b.expiresIn && setTimeout(function() {
                            i.logout()
                        }, 1E3 * b.expiresIn), i.fireEvent("login", {
                            cancelled : !1,
                            data : a,
                            success : !0,
                            uid : i.uid
                        }), !0
                }

                function j(a, b, e, c) {
                    result = {
                        source : i,
                        success : !1
                    };
                    result[b] = e;
                    !a || a.error ? a && (result.error = a.error) : (result.success = !0, result.result = JSON.stringify(a));
                    c(result)
                }

                function h() {
                    FB.login(function(a) {
                        c(a) || i.fireEvent("login", {
                            cancelled : !0,
                            data : a,
                            error : "user cancelled or an internal error occured.",
                            success : !1,
                            uid : a.id
                        })
                    }, {
                        scope : i.permissions.join()
                    })
                }

                var f = !1, e = !1, b = null, g = document.createElement("div"), a = !1;
                Ti._5.EventDriven(i);
                Ti._5.prop(i, {
                    accessToken :
                    void 0,
                    appid : {
                        get : function() {
                            return b
                        },
                        set : function(e) {
                            b = e;
                            a && k()
                        }
                    },
                    expirationDate :
                    void 0,
                    forceDialogAuth : {
                        get : function() {
                            return !0
                        },
                        set : function() {
                        }
                    },
                    loggedIn : !1,
                    permissions :
                    void 0,
                    uid :
                    void 0
                });
                g.id = "fb-root";
                document.body.appendChild(g);
                if (!document.getElementById("facebook-jssdk")) {
                    var g = document.createElement("script"), r = document.getElementsByTagName("head")[0];
                    g.id = "facebook-jssdk";
                    g.async = !0;
                    g.src = "//connect.facebook.net/en_US/all.js";
                    r.insertBefore(g, r.firstChild)
                }
                window.fbAsyncInit = function() {
                    a = !0;
                    b && k()
                };
                i.authorize = function() {
                    if (null == b)
                        throw Error("App ID not set. Facebook authorization cancelled.");
                    f ? h() : e = !0
                };
                i.createLoginButton = function() {
                    throw Error('Method "Titanium.Facebook.createLoginButton" is not implemented yet.');
                };
                i.dialog = function(a, b, e) {
                    loggedIn ? (b.method = a, FB.ui(b, function(b) {
                        j(b, "action", a, e)
                    })) : e({
                        success : !1,
                        error : "not logged in",
                        action : a,
                        source : i
                    })
                };
                i.logout = function() {
                    loggedIn && FB.logout(function() {
                        loggedIn = !1;
                        i.fireEvent("logout", {
                            success : !0
                        })
                    })
                };
                i.request = function(a, b, e) {
                    loggedIn ? (b.method = a, b.urls = "facebook.com,developers.facebook.com", FB.api(b, function(b) {
                        j(b, "method", a, e)
                    })) : e({
                        success : !1,
                        error : "not logged in",
                        method : a,
                        source : i
                    })
                };
                i.requestWithGraphPath = function(a, b, e, c) {
                    loggedIn ? FB.api(a, e, b, function(b) {
                        j(b, "path", a, c)
                    }) : c({
                        success : !1,
                        error : "not logged in",
                        path : a,
                        source : i
                    })
                }
            })(Ti._5.createClass("Ti.Facebook"))
        })
    },
    "Ti/Gesture" : function() {
        define(["Ti/_/Evented", "Ti/_/lang", "Ti/UI"], function(i, k, c) {
            function j() {
                r.orientation = c.PORTRAIT;
                switch(f.orientation) {
                    case 90:
                        r.orientation = c.LANDSCAPE_LEFT;
                        break;
                    case -90:
                        r.orientation = c.LANDSCAPE_RIGHT;
                        break;
                    case 180:
                        r.orientation = c.UPSIDE_PORTRAIT
                }
                return r.orientation
            }

            function h(a) {
                var e = null, f = Math.abs(a.beta || a.y | 0), g = Math.abs(a.gamma || a.x | 0);
                5 > f && 170 < g && ( e = c.FACE_DOWN);
                5 > f && 5 > g && ( e = c.FACE_UP);
                50 < f && 0 > f && b != e && ( e = c.UPSIDE_PORTRAIT);
                null !== e && b !== e && r.fireEvent("orientationchange", {
                    orientation : b = e,
                    source : a.source
                })
            }

            var f = window, e = require.on, b = null, g = (new Date).getTime(), a = {}, r = k.setObject("Ti.Gesture", i, {
                properties : {
                    orientation : c.UNKNOWN
                }
            });
            j();
            e(f, "orientationchange", function(a) {
                j();
                b !== r.orientation && r.fireEvent("orientationchange", {
                    orientation : b = r.orientation,
                    source : a.source
                })
            });
            e(f, "MozOrientation", h);
            e(f, "deviceorientation", h);
            e(f, "devicemotion", function(b) {
                var e = b.acceleration || b.accelerationIncludingGravity, c, f;
                if ( b = e && {
                    x : e.x,
                    y : e.y,
                    z : e.z,
                    source : b.source
                }) {
                    if (
                        void 0 !== a.x && ( e = 10 < Math.abs(a.x - b.x), c = 10 < Math.abs(a.y - b.y), f = 10 < Math.abs(a.z - b.z), e && (c || f) || c && f))
                        if ( e = (new Date).getTime(), 300 < (b.timestamp = e - g))
                            g = e, r.fireEvent("shake", b);
                    a = b
                }
            });
            return r
        })
    },
    "Ti/App/Properties" : function() {
        define(["Ti/_/Evented", "Ti/_/lang"], function(i, k) {
            function c(a) {
                g || ( g = JSON.parse(localStorage.getItem(h)) || {});
                return a ? g[a] : g
            }

            function j(a, b, j) {
                a && (c(), j === f ?
                delete g[a] : g[a] = e[b] ? e[b](j) : j, localStorage.setItem(h, JSON.stringify(g)))
            }

            var h = "ti:properties", f, e = {
                Bool : function(a) {
                    return !!a
                },
                Double : function(a) {
                    return parseFloat(a)
                },
                Int : function(a) {
                    return parseInt(a)
                },
                List : function(a) {
                    return a === f ? a : require.is(a, "Array") ? a : [a]
                },
                String : function(a) {
                    return "" + a
                }
            }, b, g, a = k.setObject("Ti.App.Properties", i, {
                hasProperty : function(a) {
                    return !!c(a)
                },
                listProperties : function() {
                    var a = c(), b = [], e;
                    for (e in a)
                    b.push(e);
                    return b
                },
                removeProperty : function(a) {
                    j(a)
                }
            });
            for (b in e)(function(b) {
                a["get" + b] = function(a, g) {
                    var h = c(a);
                    (h === f || null === h) && ( h = g);
                    return e[b] ? e[b](h) : h
                };
                a["set" + b] = function(a, e) {
                    j(a, b, e)
                }
            })(b);
            return a
        })
    },
    "Ti/_/event" : function() {
        define({
            stop : function(i) {
                i && (i.preventDefault && i.preventDefault(), i.stopPropagation && i.stopPropagation())
            },
            off : function(i) {
                require.each(require.is(i, "Array") ? i : [i], function(i) {
                    i && i()
                })
            }
        })
    },
    "Ti/_/Layouts/Vertical" : function() {
        define(["Ti/_/Layouts/Base", "Ti/_/declare"], function(i, k) {
            return k("Ti._.Layouts.Vertical", i, {
                _doLayout : function(c, j, h) {
                    var f = {
                        width : 0,
                        height : 0
                    }, e = 0, b;
                    for (b in c.children) {
                        var g = c.children[b];
                        g._doLayout(0, e, j, h, !0, !1);
                        var a = g._measuredWidth + g._measuredLeft + 2 * g._measuredBorderWidth + g._measuredRightPadding, e = g._measuredHeight + g._measuredTop + 2 * g._measuredBorderWidth + g._measuredBottomPadding;
                        a > f.width && (f.width = a);
                        e > f.height && (f.height = e)
                    }
                    return f
                }
            })
        })
    },
    "Ti/_/UI/FontWidget" : function() {
        define("Ti/_/declare,Ti/_/dom,Ti/_/lang,Ti/_/ready,Ti/_/style,Ti/_/UI/Widget".split(","), function(i, k, c, j, h, f) {
            var e;
            j(function() {
                e = k.create("p", {
                    style : {
                        position : "absolute",
                        top : "-1000em",
                        left : 0,
                        height : "auto",
                        width : "auto"
                    }
                }, document.body)
            });
            return i("Ti._.UI.FontWidget", f, {
                constructor : function() {
                    this._styleableDomNodes = []
                },
                _setFont : function(b, e) {
                    c.isDef(b.fontSize) && (b.fontSize = k.unitize(b.fontSize));
                    h.set(e, b)
                },
                _addStyleableDomNode : function(b) {
                    this._styleableDomNodes.push(b)
                },
                _removeStyleableDomNode : function(b) {
                    b = this._styleableDomNodes.indexOf(b);
                    -1 != b && this._styleableDomNodes.splice(b, 1)
                },
                _measureText : function(b, c) {
                    var a = window.getComputedStyle(c), f = this.font || {}, h = !b || "" === b;
                    e.innerHTML = h ? "\u00c4y" : b;
                    this._setFont({
                        fontFamily : f.fontFamily || a.fontFamily,
                        fontSize : f.fontSize || a.fontSize,
                        fontStyle : f.fontStyle || a.fontStyle,
                        fontWeight : f.fontWeight || a.fontWeight
                    }, e);
                    return {
                        width : h ? 0 : e.clientWidth,
                        height : e.clientHeight
                    }
                },
                properties : {
                    font : {
                        set : function(b) {
                            for (var e in this._styleableDomNodes)
                            this._setFont(b, this._styleableDomNodes[e]);
                            return b
                        }
                    }
                }
            })
        })
    },
    "Ti/UI/ScrollView" : function() {
        define(["Ti/_/declare", "Ti/UI/View", "Ti/_/style", "Ti/_/lang", "Ti/UI"], function(i, k, c, j, h) {
            return i("Ti.UI.ScrollView", k, {
                constructor : function() {
                    var f = this._contentContainer = h.createView({
                        width : "100%",
                        height : "100%",
                        left : 0,
                        top : 0
                    });
                    k.prototype.add.call(this, f);
                    c.set(f.domNode, "overflow", "hidden");
                    f.add(this._contentMeasurer = h.createView({
                        width : "auto",
                        height : "auto",
                        left : 0,
                        top : 0
                    }));
                    c.set(this._contentMeasurer.domNode, "overflow", "hidden");
                    this._createHorizontalScrollBar();
                    this._createVerticalScrollBar();
                    var e;
                    this.addEventListener("touchstart", function(b) {
                        e = {
                            x : b.x,
                            y : b.y
                        };
                        this._startScrollBars({
                            x : f.domNode.scrollLeft / (this._contentMeasurer._measuredWidth - this._measuredWidth),
                            y : f.domNode.scrollTop / (this._contentMeasurer._measuredHeight - this._measuredHeight)
                        }, {
                            x : f._measuredWidth / this._contentMeasurer._measuredWidth,
                            y : f._measuredHeight / this._contentMeasurer._measuredHeight
                        });
                        this._isScrollBarActive && this.fireEvent("dragStart", {})
                    });
                    this.addEventListener("touchend", function() {
                        e = null;
                        this._endScrollBars();
                        this._isScrollBarActive && this.fireEvent("dragEnd", {
                            decelerate : !1
                        })
                    });
                    this.addEventListener("touchmove", j.hitch(this, function(b) {
                        var a = f.domNode.scrollLeft, c = f.domNode.scrollTop;
                        f.domNode.scrollLeft += e.x - b.x;
                        f.domNode.scrollTop += e.y - b.y;
                        e = {
                            x : b.x,
                            y : b.y
                        };
                        this._isScrollBarActive && this.fireEvent("scroll", {
                            x : a,
                            y : c,
                            dragging : !0
                        });
                        this._updateScrollBars({
                            x : a / (this._contentMeasurer._measuredWidth - this._measuredWidth),
                            y : c / (this._contentMeasurer._measuredHeight - this._measuredHeight)
                        })
                    }));
                    var b = this;
                    this.domNode.addEventListener("mousewheel", function(e) {
                        b._startScrollBars({
                            x : f.domNode.scrollLeft / (b._contentMeasurer._measuredWidth - b._measuredWidth),
                            y : f.domNode.scrollTop / (b._contentMeasurer._measuredHeight - b._measuredHeight)
                        }, {
                            x : f._measuredWidth / b._contentMeasurer._measuredWidth,
                            y : f._measuredHeight / b._contentMeasurer._measuredHeight
                        });
                        setTimeout(function() {
                            f.domNode.scrollLeft -= e.wheelDeltaX;
                            f.domNode.scrollTop -= e.wheelDeltaY;
                            b._isScrollBarActive && b.fireEvent("scroll", {
                                x : f.domNode.scrollLeft,
                                y : f.domNode.scrollTop,
                                dragging : !1
                            });
                            b._updateScrollBars({
                                x : (f.domNode.scrollLeft - e.wheelDeltaX) / (b._contentMeasurer._measuredWidth - b._measuredWidth),
                                y : (f.domNode.scrollTop - e.wheelDeltaY) / (b._contentMeasurer._measuredHeight - b._measuredHeight)
                            });
                            setTimeout(function() {
                                b._endScrollBars()
                            }, 10)
                        }, 10)
                    })
                },
                scrollTo : function(c, e) {
                    null !== c && (this._contentContainer.scrollLeft = parseInt(c));
                    null !== e && (this._contentContainer.scrollTop = parseInt(e))
                },
                _defaultWidth : "100%",
                _defaultHeight : "100%",
                _getContentOffset : function() {
                    return this.contentOffset
                },
                _doLayout : function() {
                    this._contentMeasurer.layout = this.layout;
                    k.prototype._doLayout.apply(this, arguments)
                },
                add : function(c) {
                    this._contentMeasurer.add(c)
                },
                remove : function(c) {
                    this._contentMeasurer.remove(c)
                },
                properties : {
                    contentHeight : {
                        get : function() {
                            return this._contentMeasurer.height
                        },
                        set : function(c) {
                            return this._contentMeasurer.height = c
                        }
                    },
                    contentOffset : {
                        get : function() {
                            return {
                                x : this._contentContainer.domNode.scrollLeft,
                                y : this._contentContainer.domNode.scrollTop
                            }
                        },
                        set : function(c) {
                            this._contentContainer.domNode.scrollLeft = c.x;
                            this._contentContainer.domNode.scrollTop = c.y;
                            return c
                        }
                    },
                    contentWidth : {
                        get : function() {
                            return this._contentMeasurer.width
                        },
                        set : function(c) {
                            return this._contentMeasurer.width = c
                        }
                    },
                    showHorizontalScrollIndicator : {
                        set : function(c, e) {
                            c !== e && ( c ? this._createHorizontalScrollBar() : this._destroyHorizontalScrollBar());
                            return c
                        },
                        value : !0
                    },
                    showVerticalScrollIndicator : {
                        set : function(c, e) {
                            c !== e && ( c ? this._createVerticalScrollBar() : this._destroyVerticalScrollBar());
                            return c
                        },
                        value : !0
                    }
                }
            })
        })
    },
    "Ti/_/Gestures/Pinch" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.Pinch", c, {
                name : "pinch",
                _touchStartLocation : null,
                _touchEndLocation : null,
                _fingerDifferenceThresholdTimer : null,
                _startDistance : null,
                _previousDistance : null,
                _previousTime : null,
                _fingerDifferenceThreshold : 100,
                _driftThreshold : 25,
                processTouchStartEvent : function(c) {
                    var h = c.changedTouches[0].clientX, f = c.changedTouches[0].clientY, e = c.touches.length, b = c.changedTouches.length;
                    1 == e && 1 == b ? (this._touchStartLocation = [{
                        x : h,
                        y : f
                    }], this._fingerDifferenceThresholdTimer = setTimeout(k.hitch(this, function() {
                        this._touchStartLocation = null
                    }), this._fingerDifferenceThreshold)) : 2 == e && 1 == b ? (clearTimeout(this._fingerDifferenceThresholdTimer), this._touchStartLocation && (this._touchStartLocation.push({
                        x : h,
                        y : f
                    }), this._startDistance = Math.sqrt(Math.pow(this._touchStartLocation[0].x - this._touchStartLocation[1].x, 2) + Math.pow(this._touchStartLocation[0].y - this._touchStartLocation[1].y, 2)))) : 2 == e && 2 == b ? (this._touchStartLocation = [{
                        x : h,
                        y : f
                    }, {
                        x : c.changedTouches[1].clientX,
                        y : c.changedTouches[1].clientY
                    }], this._startDistance = Math.sqrt(Math.pow(this._touchStartLocation[0].x - this._touchStartLocation[1].x, 2) + Math.pow(this._touchStartLocation[0].y - this._touchStartLocation[1].y, 2))) : this._touchStartLocation = null
                },
                processTouchEndEvent : function(c, h) {
                    this.processTouchMoveEvent(c, h);
                    this._touchStartLocation = null
                },
                processTouchMoveEvent : function(c, h) {
                    if (this._touchStartLocation && 2 == this._touchStartLocation.length && 2 == c.touches.length) {
                        var f = Math.sqrt(Math.pow(c.touches[0].clientX - c.touches[1].clientX, 2) + Math.pow(c.touches[0].clientY - c.touches[1].clientY, 2)), e = 0, b = (new Date).getTime();
                        this._previousDistance && ( e = Math.abs(this._previousDistance / this._startDistance - f / this._startDistance) / ((b - this._previousTime) / 1E3));
                        this._previousDistance = f;
                        this._previousTime = b;
                        h._isGestureBlocked(this.name) || k.hitch(h, h._handleTouchEvent(this.name, {
                            scale : f / this._startDistance,
                            velocity : e
                        }))
                    }
                },
                processTouchCancelEvent : function() {
                    this._touchStartLocation = null
                }
            })
        })
    },
    "Ti/_/Gestures/TouchCancel" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.TouchCancel", c, {
                name : "touchcancel",
                processTouchCancelEvent : function(c, h) {
                    if (!h._isGestureBlocked(this.name))
                        for (var f = 0; f < c.changedTouches.length; f++)
                            k.hitch(h, h._handleTouchEvent(this.name, {
                                x : c.changedTouches[f].clientX,
                                y : c.changedTouches[f].clientY
                            }))
                }
            })
        })
    },
    "Ti/UI/Tab" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/UI/View", "Ti/_/dom"], function(i, k, c, j) {
            return i("Ti.UI.Tab", c, {
                constructor : function() {
                    this._windows = [];
                    this._contentContainer = j.create("div", {
                        className : "TiUIButtonContentContainer",
                        style : {
                            width : "100%",
                            height : "100%",
                            display : ["-webkit-box", "-moz-box"],
                            boxOrient : "horizontal",
                            boxPack : "center",
                            boxAlign : "center"
                        }
                    }, this.domNode);
                    this._tabIcon = j.create("img", {
                        className : "TiUIButtonImage"
                    }, this._contentContainer);
                    this._tabTitle = j.create("div", {
                        className : "TiUIButtonTitle",
                        style : {
                            whiteSpace : "nowrap"
                        }
                    }, this._contentContainer);
                    require.on(this.domNode, "click", this, function() {
                        this._tabGroup && this._tabGroup.setActiveTab(this)
                    })
                },
                open : function(c, f) {
                    c = c || this.window;
                    this._windows.push(c);
                    c.activeTab = this;
                    k.isDef(c.backgroundColor) || (c.backgroundColor = "white");
                    var e = k.isDef(c.opacity) ? c.opacity : 1;
                    c.opacity = 0;
                    c.open(f);
                    c.animate({
                        opacity : e,
                        duration : 250
                    }, function() {
                        c.opacity = e
                    })
                },
                close : function(c) {
                    var f = this._windows.pop();
                    f && f.animate({
                        opacity : 0,
                        duration : 250
                    }, function() {
                        f.close(c)
                    })
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                _tabGroup : null,
                _tabWidth : "100%",
                properties : {
                    active : {
                        get : function() {
                            return this._tabGroup && this._tabGroup.activeTab === this
                        }
                    },
                    icon : {
                        set : function(c) {
                            return this._tabIcon.src = c
                        }
                    },
                    title : {
                        set : function(c) {
                            return this._tabTitle.innerHTML = c
                        }
                    },
                    titleid : {
                        get : function(c) {
                            console.debug('Property "Titanium.UI.Tab#.titleid" is not implemented yet.');
                            return c
                        },
                        set : function(c) {
                            console.debug('Property "Titanium.UI.Tab#.titleid" is not implemented yet.');
                            return c
                        }
                    },
                    width : function() {
                        return this._tabWidth
                    },
                    height : function() {
                        return "100%"
                    },
                    window : {
                        get : function(c) {
                            var f = this._windows;
                            return c ? c : f.length ? f[0] : null
                        },
                        set : function(c) {
                            this._windows.unshift(c);
                            return c
                        }
                    }
                }
            })
        })
    },
    "Ti/_/Layouts/Absolute" : function() {
        define(["Ti/_/Layouts/Base", "Ti/_/declare"], function(i, k) {
            return k("Ti._.Layouts.Absolute", i, {
                _doLayout : function(c, i, h) {
                    var f = {
                        width : 0,
                        height : 0
                    }, e;
                    for (e in c.children) {
                        var b = c.children[e];
                        b._doLayout(0, 0, i, h, !0, !0);
                        var g = b._measuredWidth + b._measuredLeft + 2 * b._measuredBorderWidth + b._measuredRightPadding, b = b._measuredHeight + b._measuredTop + 2 * b._measuredBorderWidth + b._measuredBottomPadding;
                        g > f.width && (f.width = g);
                        b > f.height && (f.height = b)
                    }
                    return f
                }
            })
        })
    },
    "Ti/_/Layouts/Base" : function() {
        define(["Ti/_/css", "Ti/_/declare", "Ti/_/style", "Ti/_/dom"], function(i, k) {
            return k("Ti._.Layouts.Base", null, {
                constructor : function(c) {
                    this.element = c;
                    i.add(c.domNode, i.clean(this.declaredClass))
                },
                destroy : function() {
                    i.remove(this.element.domNode, i.clean(this.declaredClass))
                }
            })
        })
    },
    "Ti/UI/TextField" : function() {
        define("Ti/_/declare,Ti/_/UI/TextBox,Ti/_/css,Ti/_/dom,Ti/_/lang,Ti/_/style,Ti/UI".split(","), function(i, k, c, j, h, f, e) {
            var b = ["None", "Line", "Bezel", "Rounded"];
            return i("Ti.UI.TextField", k, {
                constructor : function() {
                    var b = this._field = j.create("input", {
                        autocomplete : "off",
                        style : {
                            width : "100%",
                            height : "100%"
                        }
                    }, this.domNode);
                    this._initTextBox();
                    this._keyboardType();
                    this.borderStyle = e.INPUT_BORDERSTYLE_NONE;
                    require.on(b, "focus", this, function() {
                        this.clearOnEdit && (b.value = "")
                    })
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                _getContentWidth : function() {
                    return this._measureText(this.value, this._field).width
                },
                _getContentHeight : function() {
                    return this._measureText(this.value, this._field).height
                },
                _setTouchEnabled : function(b) {
                    this.slider && f.set(this._field, "pointerEvents", b ? "auto" : "none")
                },
                _keyboardType : function(b) {
                    var a = "text", b = b || {};
                    if (h.val(b.pm, this.passwordMask))
                        a = "password";
                    else
                        switch(h.val(b.kt,this.keyboardType)) {
                            case e.KEYBOARD_EMAIL:
                                a = "email";
                                break;
                            case e.KEYBOARD_NUMBER_PAD:
                                a = "number";
                                break;
                            case e.KEYBOARD_PHONE_PAD:
                                a = "tel";
                                break;
                            case e.KEYBOARD_URL:
                                a = "url"
                        }
                    this._field.type = a
                },
                properties : {
                    borderStyle : {
                        set : function(e, a) {
                            var f = this.domNode;
                            e !== a && (c.remove(f, "TiUITextFieldBorderStyle" + b[a]), c.add(f, "TiUITextFieldBorderStyle" + b[e]));
                            return e
                        }
                    },
                    clearOnEdit : !1,
                    hintText : {
                        set : function(b) {
                            return this._field.placeholder = b
                        }
                    },
                    keyboardType : {
                        set : function(b) {
                            this._keyboardType({
                                kt : b
                            });
                            return b
                        }
                    },
                    maxLength : {
                        set : function(b) {
                            b |= 0;
                            this._field.maxlength = 0 < b ? b : "";
                            return b
                        }
                    },
                    passwordMask : {
                        value : !1,
                        set : function(b) {
                            this._keyboardType({
                                pm : b
                            });
                            return b
                        }
                    }
                }
            })
        })
    },
    "Ti/_/dom" : function() {
        define(["Ti/_", "Ti/_/style"], function(i, k) {
            var c = require.is, j = {
                innerHTML : 1,
                className : 1,
                value : 1
            }, h = {
                classname : "class",
                htmlfor : "for",
                tabindex : "tabIndex",
                readonly : "readOnly"
            }, f = {
                "class" : "className",
                "for" : "htmlFor",
                tabindex : "tabIndex",
                readonly : "readOnly",
                colspan : "colSpan",
                frameborder : "frameBorder",
                rowspan : "rowSpan",
                valuetype : "valueType"
            }, e = {
                set : function(b, g, a) {
                    if (2 === arguments.length) {
                        for (var i in g)
                        e.set(b, i, g[i]);
                        return b
                    }
                    i = g.toLowerCase();
                    var y = f[i] || g, u = j[y];
                    if ("style" === y && !require.is(a, "String"))
                        return k.set(b, a);
                    if (u || c(a, "Boolean") || c(a, "Function"))
                        return b[g] = a, b;
                    b.setAttribute(h[i] || g, a);
                    return b
                },
                remove : function(b, e) {
                    b.removeAttribute(e);
                    return b
                }
            };
            return {
                create : function(b, f, a, h) {
                    var i = a ? a.ownerDocument : document;
                    c(b, "String") && ( b = i.createElement(b));
                    f && e.set(b, f);
                    a && this.place(b, a, h);
                    return b
                },
                attr : e,
                place : function(b, e) {
                    e.appendChild(b);
                    return b
                },
                detach : function(b) {
                    return b.parentNode && b.parentNode.removeChild(b)
                },
                destroy : function(b) {
                    try {
                        var e = b.ownerDocument.createElement("div");
                        e.appendChild(this.detach(b) || b);
                        e.innerHTML = ""
                    } catch(a) {
                    }
                },
                unitize : function(b) {
                    return isNaN(b - 0) || b - 0 != b ? b : b + "px"
                },
                computeSize : function(b, e, a) {
                    var c = require.is(b);
                    if ("String" === c)
                        if ("auto" === b)
                            a && ( b =
                            void 0);
                        else
                            switch(c=parseFloat(b),b.substring((c+"").length)) {
                                case "%":
                                    if ("auto" == e)
                                        a ?
                                        void 0 : "auto";
                                    else if (!require.is(e, "Number")) {
                                        console.error("Could not compute percentage size/position of element.");
                                        return
                                    }
                                    return c / 100 * e;
                                case "mm":
                                    c *= 10;
                                case "cm":
                                    return 0.0393700787 * c * i.dpi;
                                case "pc":
                                    dpi /= 12;
                                case "pt":
                                    dpi /= 72;
                                case "in":
                                    return c * i.dpi;
                                case "px":
                                case "dp":
                                    return c
                            }
                    else
                        "Number" !== c && ( b =
                        void 0);
                    return b
                }
            }
        })
    },
    "Ti/App" : function() {
        define(["Ti/_/Evented", "Ti/_/lang"], function(i, k) {
            return k.mixProps(k.setObject("Ti.App", i), {
                constants : require.config.app
            })
        })
    },
    "Ti/Filesystem" : function() {
        define("Ti/Filesystem", ["Ti/_/Evented"], function() {
            (function(i) {
                Ti._5.EventDriven(i);
                Ti._5.propReadOnly(i, {
                    MODE_APPEND : 1,
                    MODE_READ : 2,
                    MODE_WRITE : 3,
                    applicationDataDirectory : "/",
                    applicationDirectory : "/",
                    lineEnding : "\n",
                    resourcesDirectory : "/",
                    separator : "/",
                    tempDirectory : null
                });
                i.createFile = function() {
                    console.debug('Method "Titanium.Filesystem.createFile" is not implemented yet.')
                };
                i.createTempDirectory = function() {
                    console.debug('Method "Titanium.Filesystem.createTempDirectory" is not implemented yet.')
                };
                i.createTempFile = function() {
                    console.debug('Method "Titanium.Filesystem.createTempFile" is not implemented yet.')
                };
                i.getFile = function() {
                    console.debug('Method "Titanium.Filesystem.getFile" is not implemented yet.');
                    return new Ti.Filesystem.File
                };
                i.isExternalStoragePresent = function() {
                    console.debug('Method "Titanium.Filesystem.isExternalStoragePresent" is not implemented yet.')
                }
            })(Ti._5.createClass("Ti.Filesystem"))
        })
    },
    "Ti/Network/HTTPClient" : function() {
        define(["Ti/_", "Ti/_/declare", "Ti/_/lang", "Ti/_/Evented", "Ti/Network"], function(i, k, c, j) {
            var h = require.is, f = require.on;
            return k("Ti.Network.HTTPClient", j, {
                constructor : function() {
                    var e = this._xhr = new XMLHttpRequest;
                    f(e, "error", this, "_onError");
                    f(e.upload, "error", this, "_onError");
                    f(e, "progress", this, "_onProgress");
                    f(e.upload, "progress", this, "_onProgress");
                    e.onreadystatechange = c.hitch(this, function() {
                        var b = this.constants;
                        switch(e.readyState) {
                            case 0:
                                b.readyState = this.UNSENT;
                                break;
                            case 1:
                                b.readyState = this.OPENED;
                                break;
                            case 2:
                                b.readyState = this.LOADING;
                                break;
                            case 3:
                                b.readyState = this.HEADERS_RECEIVED;
                                break;
                            case 4:
                                clearTimeout(this._timeoutTimer), this._completed = 1, b.readyState = this.DONE, 200 == e.status ? (b.responseText = b.responseData = e.responseText, b.responseXML = e.responseXML, h(this.onload, "Function") && this.onload.call(this)) : e.status / 100 | 0 && this._onError()
                        }
                        this._fireStateChange()
                    })
                },
                destroy : function() {
                    this._xhr && (this._xhr.abort(), this._xhr = null);
                    j.destroy.apply(this, arguments)
                },
                _onError : function(e) {
                    this.abort();
                    h(e, "Object") || ( e = {
                        message : e
                    });
                    e.error || (e.error = e.message || xhr.status);
                    parseInt(e.error) || (e.error = "Can't reach host");
                    h(this.onerror, "Function") && this.onerror.call(this, e)
                },
                _onProgress : function(e) {
                    e.progress = e.lengthComputable ? e.loaded / e.total : !1;
                    h(this.onsendstream, "Function") && this.onsendstream.call(this, e)
                },
                abort : function() {
                    var e = this.constants;
                    e.responseText = e.responseXML = e.responseData = "";
                    this._completed = !0;
                    clearTimeout(this._timeoutTimer);
                    this.connected && this._xhr.abort();
                    e.readyState = this.UNSENT;
                    this._fireStateChange()
                },
                _fireStateChange : function() {
                    h(this.onreadystatechange, "Function") && this.onreadystatechange.call(this)
                },
                getResponseHeader : function(e) {
                    return 1 < this._xhr.readyState ? this._xhr.getResponseHeader(e) : null
                },
                open : function(e, b, c) {
                    var a = Ti.Network.httpURLFormatter, f = this.constants;
                    this.abort();
                    this._xhr.open(f.connectionType = e, f.location = i.getAbsolutePath( a ? a(b) : b), !!c);
                    this._xhr.setRequestHeader("UserAgent", Ti.userAgent)
                },
                send : function(e) {
                    try {
                        var b = this.timeout | 0;
                        this._completed = !1;
                        ( e = h(e, "Object") ? c.urlEncode(e) : e) && this._xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                        this._xhr.send(e);
                        clearTimeout(this._timeoutTimer);
                        b && (this._timeoutTimer = setTimeout(c.hitch(this, function() {
                            this.connected && (this.abort(), !this._completed && this._onError("Request timed out"))
                        }, b)))
                    } catch(f) {
                    }
                },
                setRequestHeader : function(e, b) {
                    this._xhr.setRequestHeader(e, b)
                },
                properties : {
                    ondatastream :
                    void 0,
                    onerror :
                    void 0,
                    onload :
                    void 0,
                    onreadystatechange :
                    void 0,
                    onsendstream :
                    void 0,
                    timeout :
                    void 0
                },
                constants : {
                    DONE : 4,
                    HEADERS_RECEIVED : 2,
                    LOADING : 3,
                    OPENED : 1,
                    UNSENT : 1,
                    connected : function() {
                        return this.readyState >= this.OPENED
                    },
                    connectionType :
                    void 0,
                    location :
                    void 0,
                    readyState : this.UNSENT,
                    responseData :
                    void 0,
                    responseText :
                    void 0,
                    responseXML :
                    void 0,
                    status : function() {
                        return this._xhr.status
                    },
                    statusText : function() {
                        return this._xhr.statusText
                    }
                }
            })
        })
    },
    "Ti/UI/EmailDialog" : function() {
        define(["Ti/_", "Ti/_/declare", "Ti/_/Evented", "Ti/_/lang"], function(i, k, c, j) {
            return k("Ti.UI.EmailDialog", c, {
                open : function() {
                    var c = "mailto:" + (this.toRecipients || []).join(","), f, e, b = {
                        subject : "subject",
                        ccRecipients : "cc",
                        bccRecipients : "bcc",
                        messageBody : "body"
                    }, g = {};
                    for (f in b)
                    if ( e = this[f])
                        require.is(e, "Array") && ( e = e.join(",")), g[b[f]] = e;
                    this.html || g.body && (g.body = i.escapeHtmlEntities(g.body));
                    g = j.urlEncode(g);
                    location.href = c + ( g ? "?" + g : "");
                    this.fireEvent("complete", {
                        result : this.SENT,
                        success : !0
                    })
                },
                constants : {
                    CANCELLED : 0,
                    FAILED : 3,
                    SAVED : 1,
                    SENT : 2
                },
                properties : {
                    bccRecipients :
                    void 0,
                    ccRecipients :
                    void 0,
                    html : !1,
                    messageBody :
                    void 0,
                    subject :
                    void 0,
                    toRecipients :
                    void 0
                }
            })
        })
    },
    "Ti/UI" : function() {
        define(["Ti/_/Evented", "Ti/_/lang", "Ti/_/ready", "Ti/_/style"], function(i, k, c, j) {
            function h() {
                var a = 0;
                e && !window.location.hash && (document.height <= window.outerHeight + 10 && (g(f, "height", window.outerHeight + 60 + "px"), a = 50), setTimeout(function() {
                    window.scrollTo(0, 1);
                    window.scrollTo(0, 0);
                    Ti.UI._recalculateLayout()
                }, a))
            }

            var f = document.body, e = /(iPhone|iPad)/.test(navigator.userAgent), b = {}, g = j.set;
            f.addEventListener("touchmove", function(a) {
                a.preventDefault()
            }, !1);
            require.each("2DMatrix,ActivityIndicator,AlertDialog,Animation,Button,EmailDialog,ImageView,Label,OptionDialog,ScrollableView,ScrollView,Slider,Switch,Tab,TabGroup,TableView,TableViewRow,TableViewSection,TextArea,TextField,View,WebView,Window".split(","), function(a) {
                b["create" + a] = function(b) {
                    return new (require("Ti/UI/"+a))(b)
                }
            });
            e && (c(h), window.addEventListener("orientationchange", h));
            c(10, function() {
                f.appendChild((Ti.UI._container = Ti.UI.createView({
                    left : 0,
                    top : 0
                })).domNode);
                g(Ti.UI._container.domNode, "overflow", "hidden");
                Ti.UI._recalculateLayout()
            });
            require.on(window, "resize", function() {
                Ti.UI._recalculateLayout()
            });
            return k.setObject("Ti.UI", i, b, {
                _addWindow : function(a, b) {
                    this._container.add(a);
                    b && this._setWindow(a);
                    return a
                },
                _setWindow : function(a) {
                    this.constants.currentWindow = a
                },
                _removeWindow : function(a) {
                    this._container.remove(a);
                    return a
                },
                _triggerLayout : function(a) {
                    a ? (clearTimeout(this._layoutTimer), this._layoutMarkedNodes(this._container), this._layoutInProgress = !1) : this._layoutInProgress || (this._layoutInProgress = !0, this._layoutTimer = setTimeout(k.hitch(this, function() {
                        this._layoutMarkedNodes(this._container);
                        this._layoutInProgress = !1;
                        this._layoutTimer = null
                    }), 25))
                },
                _layoutMarkedNodes : function(a) {
                    if (a._markedForLayout)
                        a._layout && a._layout._doLayout(a, a._measuredWidth, a._measuredHeight);
                    else {
                        for (var b in a.children)
                        this._layoutMarkedNodes(a.children[b]);
                        a._doAnimationAfterLayout && (a._doAnimationAfterLayout = !1, a._doAnimation())
                    }
                },
                _recalculateLayout : function() {
                    this._container.width = window.innerWidth;
                    this._container.height = window.innerHeight;
                    this._container._doLayout(0, 0, window.innerWidth, window.innerHeight, !0, !0)
                },
                properties : {
                    backgroundColor : {
                        set : function(a) {
                            return g(f, "backgroundColor", a)
                        }
                    },
                    backgroundImage : {
                        set : function(a) {
                            return g(f, "backgroundImage", a ? j.url(a) : "")
                        }
                    },
                    currentTab : {
                        get : function() {
                            return (this.currentWindow || {}).activeTab
                        },
                        set : function(a) {
                            return (this.currentWindow || {}).activeTab = a
                        }
                    }
                },
                constants : {
                    currentWindow :
                    void 0,
                    UNKNOWN : 0,
                    FACE_DOWN : 1,
                    FACE_UP : 2,
                    PORTRAIT : 3,
                    UPSIDE_PORTRAIT : 4,
                    LANDSCAPE_LEFT : 5,
                    LANDSCAPE_RIGHT : 6,
                    INPUT_BORDERSTYLE_NONE : 0,
                    INPUT_BORDERSTYLE_LINE : 1,
                    INPUT_BORDERSTYLE_BEZEL : 2,
                    INPUT_BORDERSTYLE_ROUNDED : 3,
                    INPUT_BUTTONMODE_ALWAYS : 1,
                    INPUT_BUTTONMODE_NEVER : 0,
                    INPUT_BUTTONMODE_ONBLUR : 0,
                    INPUT_BUTTONMODE_ONFOCUS : 1,
                    KEYBOARD_APPEARANCE_ALERT : 1,
                    KEYBOARD_APPEARANCE_DEFAULT : 0,
                    KEYBOARD_ASCII : 1,
                    KEYBOARD_DEFAULT : 2,
                    KEYBOARD_EMAIL : 3,
                    KEYBOARD_NAMEPHONE_PAD : 4,
                    KEYBOARD_NUMBERS_PUNCTUATION : 5,
                    KEYBOARD_NUMBER_PAD : 6,
                    KEYBOARD_PHONE_PAD : 7,
                    KEYBOARD_URL : 8,
                    NOTIFICATION_DURATION_LONG : 1,
                    NOTIFICATION_DURATION_SHORT : 2,
                    PICKER_TYPE_COUNT_DOWN_TIMER : 1,
                    PICKER_TYPE_DATE : 2,
                    PICKER_TYPE_DATE_AND_TIME : 3,
                    PICKER_TYPE_PLAIN : 4,
                    PICKER_TYPE_TIME : 5,
                    RETURNKEY_DEFAULT : 0,
                    RETURNKEY_DONE : 1,
                    RETURNKEY_EMERGENCY_CALL : 2,
                    RETURNKEY_GO : 3,
                    RETURNKEY_GOOGLE : 4,
                    RETURNKEY_JOIN : 5,
                    RETURNKEY_NEXT : 6,
                    RETURNKEY_ROUTE : 7,
                    RETURNKEY_SEARCH : 8,
                    RETURNKEY_SEND : 9,
                    RETURNKEY_YAHOO : 10,
                    TEXT_ALIGNMENT_CENTER : 1,
                    TEXT_ALIGNMENT_RIGHT : 2,
                    TEXT_ALIGNMENT_LEFT : 3,
                    TEXT_AUTOCAPITALIZATION_ALL : 3,
                    TEXT_AUTOCAPITALIZATION_NONE : 0,
                    TEXT_AUTOCAPITALIZATION_SENTENCES : 2,
                    TEXT_AUTOCAPITALIZATION_WORDS : 1,
                    TEXT_VERTICAL_ALIGNMENT_BOTTOM : 2,
                    TEXT_VERTICAL_ALIGNMENT_CENTER : 1,
                    TEXT_VERTICAL_ALIGNMENT_TOP : 3,
                    ANIMATION_CURVE_EASE_IN : 1,
                    ANIMATION_CURVE_EASE_IN_OUT : 2,
                    ANIMATION_CURVE_EASE_OUT : 3,
                    ANIMATION_CURVE_LINEAR : 4
                }
            })
        })
    },
    "Ti/_/analytics" : function() {
        define(["Ti/_", "Ti/_/dom", "Ti/_/lang"], function(i, k, c) {
            var j = window, h = "sessionStorage" in j && sessionStorage.getItem("mobileweb_sessionId"), f = document, e = f.cookie.match(/(?:^|; )ti_mid=([^;]*)/), b = e ? decodeURIComponent(e[1]) :
            void 0, g = require.config, a = g.analytics, r = 1, y = null;
            b || ( b = localStorage.getItem("ti_mid"));
            b || localStorage.setItem("ti_mid", b = i.uuid());
            require.on(window, "beforeunload", function() {
                var a = new Date;
                a.setTime(a.getTime() + 63072E7);
                f.cookie = "ti_mid=" + encodeURIComponent(b) + "; expires=" + a.toUTCString();
                localStorage.setItem("ti_mid", b)
            });
            h || sessionStorage.setItem("mobileweb_sessionId", h = i.uuid());
            return i.analytics = {
                add : function(b, e, c, f) {
                    if (a) {
                        var g = localStorage.getItem("ti:analyticsEvents");
                        now = new Date;
                        tz = now.getTimezoneOffset();
                        atz = Math.abs(tz);
                        m = now.getMonth() + 1;
                        d = now.getDate();
                        ts = now.getFullYear() + "-" + (10 > m ? "0" + m : m) + "-" + (10 > d ? "0" + d : d) + "T" + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + "." + now.getMilliseconds() + (0 > tz ? "-" : "+") + (100 > atz ? "00" : 1E3 > atz ? "0" : "") + atz;
                        formatZeros = function(a, b) {
                            var e = (a + "").length;
                            return (e < b ? Array(++b - e).join("0") : "") + a
                        };
                        g = g ? JSON.parse(g) : [];
                        g.push({
                            eventId : i.uuid(),
                            eventType : b,
                            eventEvent : e,
                            eventTimestamp : ts,
                            eventPayload : c
                        });
                        localStorage.setItem("ti:analyticsEvents", JSON.stringify(g));
                        this.send(f)
                    }
                },
                send : function(e) {
                    if (a) {
                        var i, l = JSON.parse(localStorage.getItem("ti:analyticsEvents"));
                        i = (new Date).getTime();
                        var q = [], o = [];
                        if (!(null === l || !e && null !== y && 3E5 > i - y)) {
                            y = i;
                            for ( e = 0; e < l.length; e++)
                                i = l[e], o.push(i.eventId), q.push(JSON.stringify({
                                    seq : r++,
                                    ver : "2",
                                    id : i.eventId,
                                    type : i.eventType,
                                    event : i.eventEvent,
                                    ts : i.eventTimestamp,
                                    mid : b,
                                    sid : h,
                                    aguid : g.guid,
                                    data : require.is(i.eventPayload, "object") ? JSON.stringify(i.eventPayload) : i.eventPayload
                                }));
                            var p = function() {
                                var a, b, e, c = localStorage.getItem("ti:analyticsEvents"), f, g = [];
                                for ( a = 0; a < c.length; a++) {
                                    f = c[a];
                                    for ( b = e = 0; b < o.length; b++)
                                        if (f.eventId == o[b]) {
                                            e = 1;
                                            o.splice(b, 1);
                                            break
                                        }
                                    e || g.push(f)
                                }
                                localStorage.setItem("ti:analyticsEvents", JSON.stringify(g))
                            };
                            if (require.has("analytics-use-xhr")) {
                                var v = new XmlHttpRequest;
                                v.onreadystatechange = function() {
                                    if (4 === v.readyState && 200 === v.status)
                                        try {
                                            var a = eval("(" + v.responseText + ")");
                                            a && a.success && p()
                                        } catch(b) {
                                        }
                                };
                                v.open("POST", "https://api.appcelerator.net/p/v2/mobileweb-track", !0);
                                v.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                                v.send(c.urlEncode({
                                    content : q
                                }))
                            } else {
                                l = f.body;
                                i = Math.floor(1E6 * Math.random());
                                e = "analytics" + i;
                                i = "mobileweb_jsonp" + i;
                                var s = k.create("iframe", {
                                    id : e,
                                    name : e,
                                    style : {
                                        display : "none"
                                    }
                                }, l), x = k.create("form", {
                                    action : "https://api.appcelerator.net/p/v2/mobileweb-track?callback=" + i,
                                    method : "POST",
                                    style : {
                                        display : "none"
                                    },
                                    target : e
                                }, l);
                                k.create("input", {
                                    name : "content",
                                    type : "hidden",
                                    value : "[" + q.join(",") + "]"
                                }, x);
                                j[i] = function(a) {
                                    a && a.success && p()
                                };
                                setTimeout(function() {
                                    function a() {
                                        k.destroy(x);
                                        k.destroy(s)
                                    }
                                    s.onload = a;
                                    s.onerror = a;
                                    x.submit()
                                }, 25)
                            }
                        }
                    }
                }
            }
        })
    },
    "Ti/UI/TabGroup" : function() {
        define(["Ti/_/declare", "Ti/_/css", "Ti/_/UI/SuperView", "Ti/UI"], function(i, k, c, j) {
            var h = require.is;
            return i("Ti.UI.TabGroup", c, {
                constructor : function() {
                    this.add(this._tabBarContainer = j.createView({
                        width : "100%",
                        height : "10%",
                        layout : "horizontal",
                        top : 0,
                        left : 0
                    }));
                    this.add(this._tabContentContainer = j.createView({
                        width : "100%",
                        height : "90%",
                        left : 0,
                        top : "10%"
                    }));
                    this.tabs = []
                },
                addTab : function(c) {
                    var e = this.tabs = this.tabs || [];
                    e.push(c);
                    c._tabGroup = this;
                    this._tabBarContainer.add(c);
                    this._setTabBarWidths(e);
                    1 == e.length && (this.properties.activeTab = c)
                },
                removeTab : function(c) {
                    var e = this.tabs, b = this.tabs.indexOf(c);
                    0 <= b && (e.splice(b, 1), this._tabBarContainer.remove(c), this._setTabBarWidths(e), c === this._activeTab && this._activateTab(e[0]))
                },
                _activateTab : function(c) {
                    var e = this.tabs, b = this._activeTab;
                    b && (b.active = !1, k.remove(b.domNode, "TiActiveTab"), this._tabContentContainer.remove(b.window));
                    k.add(c.domNode, "TiActiveTab");
                    c.active = !0;
                    this._activeTab = c;
                    this._tabContentContainer.add(c.window);
                    this._state = {
                        index : e.indexOf(c),
                        previousIndex : b ? e.indexOf(b) : -1,
                        previousTab : b,
                        tab : c
                    }
                },
                _setTabBarWidths : function(c) {
                    var e = 100 / c.length + "%", b;
                    for (b in c)
                    c[b]._tabWidth = e
                },
                _defaultWidth : "100%",
                _defaultHeight : "100%",
                properties : {
                    activeTab : {
                        set : function(c) {
                            if (h(c, "Number")) {
                                if (!c in this.tabs)
                                    return;
                                c = this.tabs[c]
                            }
                            this._activateTab(c);
                            return c
                        }
                    },
                    tabs : {
                        set : function(c, e) {
                            var b, g = this._tabBarContainer;
                            if (h(c, "Array")) {
                                for (b in e)
                                g.remove(e[b]);
                                if (c.length)
                                    for (b in this._setTabBarWidths(c), this._activateTab(c[0]), c)
                                    g.add(c[b]);
                                return c
                            }
                        }
                    }
                }
            })
        })
    },
    "Ti/UI/TableViewRow" : function() {
        define("Ti/_/declare,Ti/_/lang,Ti/UI/View,Ti/_/dom,Ti/_/css,Ti/_/style,Ti/UI".split(","), function(i, k, c, j, h, f, e) {
            var b = f.set, g = k.isDef;
            checkImage = "themes/titanium/UI/TableViewRow/check.png";
            childImage = "themes/titanium/UI/TableViewRow/child.png";
            detailImage = "themes/titanium/UI/TableViewRow/detail.png";
            return i("Ti.UI.TableViewRow", c, {
                _indentionScale : 10,
                constructor : function() {
                    this.leftView = e.createView({
                        left : 0,
                        top : 0,
                        width : "auto",
                        height : "100%",
                        layout : "horizontal"
                    });
                    b(this.leftView.domNode, "boxAlign", "center");
                    this.add(this.leftView);
                    this.leftImageView = e.createImageView();
                    this.leftView.add(this.leftImageView);
                    this.titleLabel = e.createLabel({
                        width : "auto",
                        height : "100%"
                    });
                    this.leftView.add(this.titleLabel);
                    this.add(this.rightImageView = e.createImageView({
                        right : 0,
                        top : 0,
                        width : "auto",
                        height : "100%"
                    }))
                },
                _defaultHeight : "auto",
                _defaultWidth : "100%",
                _tableRowHeight :
                void 0,
                _tableViewSection : null,
                _handleTouchEvent : function(a, b) {
                    if ("click" === a || "singletap" === a)
                        this._tableViewSection && this._tableViewSection._tableView && (this._tableViewSection._tableView._tableViewRowClicked = this);
                    c.prototype._handleTouchEvent.apply(this, arguments)
                },
                _doLayout : function() {
                    c.prototype._doLayout.apply(this, arguments)
                },
                _doBackground : function(a) {
                    this.titleLabel.color = this._touching ? this.selectedColor : this.color;
                    c.prototype._doBackground.apply(this, arguments)
                },
                properties : {
                    className :
                    void 0,
                    color : {
                        set : function(a) {
                            return this.titleLabel.color = a
                        }
                    },
                    hasCheck : {
                        set : function(a, b) {
                            a !== b && !g(this.rightImage) && !this.hasChild && (this.rightImageView.image = a ? checkImage :
                            void 0);
                            return a
                        }
                    },
                    hasChild : {
                        set : function(a, b) {
                            a !== b && !g(this.rightImage) && (this.rightImageView.image = a ? childImage :
                            void 0);
                            return a
                        }
                    },
                    hasDetail : {
                        set : function(a, b) {
                            a !== b && !g(this.rightImage) && !this.hasChild && !this.hasCheck && (this.rightImageView.image = a ? detailImage :
                            void 0);
                            return a
                        }
                    },
                    indentionLevel : {
                        set : function(a) {
                            this.leftView.left = a * this._indentionScale;
                            return a
                        },
                        value : 0
                    },
                    leftImage : {
                        set : function(a) {
                            return this.leftImageView.image = a
                        }
                    },
                    rightImage : {
                        set : function(a, b) {
                            a !== b && (this.rightImageView.image = a);
                            return a
                        }
                    },
                    selectedColor :
                    void 0,
                    title : {
                        set : function(a) {
                            return this.titleLabel.text = a
                        }
                    },
                    font : {
                        set : function(a) {
                            return this.titleLabel.font = a
                        }
                    }
                }
            })
        })
    },
    "Ti/_/Layouts/Horizontal" : function() {
        define(["Ti/_/Layouts/Base", "Ti/_/declare"], function(i, k) {
            return k("Ti._.Layouts.Horizontal", i, {
                _doLayout : function(c, i, h) {
                    var f = {
                        width : 0,
                        height : 0
                    }, e = 0, b;
                    for (b in c.children) {
                        var g = c.children[b];
                        g._doLayout(e, 0, i, h, !1, !1);
                        e = g._measuredLeft + g._measuredWidth + 2 * g._measuredBorderWidth + g._measuredRightPadding;
                        g = g._measuredTop + g._measuredHeight + 2 * g._measuredBorderWidth + g._measuredBottomPadding;
                        e > f.width && (f.width = e);
                        g > f.height && (f.height = g)
                    }
                    return f
                }
            })
        })
    },
    "Ti/UI/Button" : function() {
        define("Ti/_/declare,Ti/_/UI/FontWidget,Ti/_/dom,Ti/_/style,Ti/_/lang,Ti/UI".split(","), function(i, k, c, j, h, f) {
            var e = j.set, j = {
                post : "_updateLook"
            };
            return i("Ti.UI.Button", k, {
                domType : "button",
                constructor : function() {
                    this._contentContainer = c.create("div", {
                        className : "TiUIButtonContentContainer",
                        style : {
                            display : ["-webkit-box", "-moz-box"],
                            boxOrient : "horizontal",
                            boxPack : "center",
                            boxAlign : "center",
                            pointerEvents : "none"
                        }
                    }, this.domNode);
                    this._buttonImage = c.create("img", {
                        className : "TiUIButtonImage",
                        style : {
                            pointerEvents : "none"
                        }
                    }, this._contentContainer);
                    this._buttonTitle = c.create("div", {
                        className : "TiUIButtonTitle",
                        style : {
                            whiteSpace : "nowrap",
                            pointerEvents : "none"
                        }
                    }, this._contentContainer);
                    this._addStyleableDomNode(this._buttonTitle);
                    this._setDefaultLook();
                    this._disabledDimmer = c.create("div", {
                        className : "TiUISwitchDisableDimmer",
                        style : {
                            pointerEvents : "none",
                            opacity : 0,
                            backgroundColor : "white",
                            width : "100%",
                            height : "100%",
                            position : "absolute",
                            top : 0,
                            left : 0
                        }
                    }, this.domNode);
                    this.addEventListener("touchstart", function() {
                        this.selectedColor && e(this._buttonTitle, "color", this.selectedColor)
                    });
                    this.addEventListener("touchend", function() {
                        this.selectedColor && e(this._buttonTitle, "color", this.color || "black")
                    });
                    this.domNode.addEventListener("mouseout", h.hitch(this, function() {
                        this.selectedColor && e(this._buttonTitle, "color", this.color || "black")
                    }))
                },
                _defaultWidth : "auto",
                _defaultHeight : "auto",
                _updateLook : function() {
                    this.backgroundColor || this.backgroundDisabledColor || this.backgroundDisabledImage || this.backgroundFocusedColor || this.backgroundFocusedImage || this.backgroundImage || this.backgroundSelectedColor || this.backgroundSelectedImage ? this._clearDefaultLook() : this._setDefaultLook();
                    this._doBackground()
                },
                _setDefaultLook : function() {
                    this._hasDefaultLook || (this._hasDefaultLook = !0, this.domNode.className += " TiUIButtonDefault", this._previousBorderWidth = this.borderWidth, this._previousBorderColor = this.borderColor, this.borderWidth = 1, this.borderColor = "#aaa")
                },
                _clearDefaultLook : function() {
                    if (this._hasDefaultLook) {
                        this._hasDefaultLook = !1;
                        var b = this.domNode.className;
                        this.domNode.className = b.substring(0, b.length - 18);
                        this.borderWidth = this._previousBorderWidth;
                        this.borderColor = this._previousBorderColor;
                        e(this._disabledDimmer, {
                            opacity : 0
                        })
                    }
                },
                _getContentWidth : function() {
                    return this._buttonImage.width + this._measureText(this.title, this._buttonTitle).width + (this._hasDefaultLook ? 20 : 0)
                },
                _getContentHeight : function() {
                    return Math.max(this._buttonImage.height, this._measureText(this.title, this._buttonTitle).height) + (this._hasDefaultLook ? 20 : 0)
                },
                _setTouchEnabled : function(b) {
                    k.prototype._setTouchEnabled.apply(this, arguments);
                    var c = b ? "auto" : "none";
                    e(this._contentContainer, "pointerEvents", c);
                    e(this._buttonImage, "pointerEvents", c);
                    e(this._buttonTitle, "pointerEvents", c)
                },
                properties : {
                    backgroundColor : j,
                    backgroundDisabledColor : j,
                    backgroundDisabledImage : j,
                    backgroundFocusedColor : j,
                    backgroundFocusedImage : j,
                    backgroundImage : j,
                    backgroundSelectedColor : j,
                    backgroundSelectedImage : j,
                    color : {
                        set : function(b) {
                            e(this._buttonTitle, "color", b);
                            return b
                        }
                    },
                    enabled : {
                        set : function(b, c) {
                            b !== c && ( b ? this._hasDefaultLook && e(this._disabledDimmer, {
                                opacity : 0
                            }) : this._hasDefaultLook && e(this._disabledDimmer, {
                                opacity : 0.5
                            }), this._setTouchEnabled(b));
                            return b
                        },
                        value : !0
                    },
                    image : {
                        set : function(b) {
                            require.on(this._buttonImage, "load", h.hitch(this, function() {
                                this._hasAutoDimensions() && this._triggerLayout()
                            }));
                            return this._buttonImage.src = b
                        }
                    },
                    selectedColor :
                    void 0,
                    textAlign : {
                        set : function(b) {
                            var c = "";
                            switch(b) {
                                case f.TEXT_ALIGNMENT_LEFT:
                                    c = "start";
                                    break;
                                case f.TEXT_ALIGNMENT_CENTER:
                                    c = "center";
                                    break;
                                case f.TEXT_ALIGNMENT_RIGHT:
                                    c = "end"
                            }
                            e(this._contentContainer, "boxPack", c);
                            return b
                        }
                    },
                    title : {
                        set : function(b) {
                            this._buttonTitle.innerHTML = b;
                            this._hasAutoDimensions() && this._triggerParentLayout();
                            return b
                        }
                    },
                    titleid : {
                        get : function(b) {
                            console.debug('Property "Titanium.UI.Button#.titleid" is not implemented yet.');
                            return b
                        },
                        set : function(b) {
                            console.debug('Property "Titanium.UI.Button#.titleid" is not implemented yet.');
                            return b
                        }
                    }
                }
            })
        })
    },
    "Ti/Media/VideoPlayer" : function() {
        define(["Ti/_/declare", "Ti/Media", "Ti/UI/View"], function(i, k, c) {
            var j = require.on, h, f = {
                m4v : "video/mp4",
                mov : "video/quicktime",
                mp4 : "video/mp4",
                ogg : "video/ogg",
                ogv : "video/ogg",
                webm : "video/webm"
            };
            return i("Ti.Media.VideoPlayer", c, {
                _currentState : 0,
                constructor : function() {
                    this._handles = []
                },
                properties : {
                    autoplay : !1,
                    currentPlaybackTime : {
                        get : function() {
                            return this._video ? 1E3 * this._video.currentTime : 0
                        },
                        set : function(c) {
                            this._video && (this._video.currentTime = c / 1E3 | 0);
                            return c
                        }
                    },
                    fullscreen : {
                        value : function(c) {
                            return c && c()
                        }(document.createElement("video").webkitDisplayingFullscreen),
                        set : function(c) {
                            var b, f = this._video, c = !!c;
                            if (h)
                                try {
                                    c ? f.webkitEnterFullscreen() : f.webkitExitFullscreen()
                                } catch(a) {
                                }
                            else
                                f.className = c ? "fullscreen" : "", c && ( b = j(window, "keydown", function(a) {
                                    27 === a.keyCode && (this.fullscreen = 0, b())
                                }));
                            this.fireEvent("fullscreen", {
                                entering : c
                            });
                            return c
                        }
                    },
                    mediaControlStyle : {
                        value : k.VIDEO_CONTROL_DEFAULT,
                        set : function(c) {
                            this._video && (this._video.controls = c === k.VIDEO_CONTROL_DEFAULT);
                            return c
                        }
                    },
                    repeatMode : k.VIDEO_REPEAT_MODE_NONE,
                    scalingMode : {
                        set : function(c) {
                            var b = this.domNode, f = k.VIDEO_SCALING_ASPECT_FIT, a = {};
                            a[k.VIDEO_SCALING_NONE] = "TiScalingNone";
                            a[f] = "TiScalingAspectFit";
                            b.className = b.className.replace(/(scaling\-[\w\-]+)/, "") + " " + (a[c] || a[ c = f]);
                            return c
                        }
                    },
                    url : {
                        set : function(c) {
                            this.constants.playing = !1;
                            this._currentState = 0;
                            this.properties.__values__.url = c;
                            this._createVideo();
                            return c
                        }
                    }
                },
                constants : {
                    playbackState : k.VIDEO_PLAYBACK_STATE_STOPPED,
                    playing : !1,
                    initialPlaybackTime : 0,
                    endPlaybackTime : 0,
                    playableDuration : 0,
                    loadState : k.VIDEO_LOAD_STATE_UNKNOWN,
                    duration : 0
                },
                _set : function(c, b) {
                    var f = {};
                    f[c] = this.constants[c] = b;
                    this.fireEvent("loadState" === c ? c.toLowerCase() : c, f)
                },
                _complete : function(c) {
                    c = "ended" === c.type;
                    this.constants.playing = !1;
                    this._currentState = 0;
                    this.fireEvent("complete", {
                        reason : c ? k.VIDEO_FINISH_REASON_PLAYBACK_ENDED : k.VIDEO_FINISH_REASON_USER_EXITED
                    });
                    c && this.repeatMode === k.VIDEO_REPEAT_MODE_ONE && setTimeout(function() {
                        this._video.play()
                    }, 1)
                },
                _stalled : function() {
                    this._set("loadState", k.VIDEO_LOAD_STATE_STALLED)
                },
                _fullscreenChange : function() {
                    this.fullscreen && (this.fullscreen = !_fullscreen)
                },
                _metaDataLoaded : function() {
                    h = this._video.webkitSupportsFullscreen;
                    this._durationChange()
                },
                _durationChange : function() {
                    var c = 1E3 * this._video.duration, b = this.constants;
                    Infinity !== c && (this.duration || this.fireEvent("durationAvailable", {
                        duration : c
                    }), b.duration = b.playableDuration = b.endPlaybackTime = c)
                },
                _paused : function() {
                    var c = k.VIDEO_PLAYBACK_STATE_STOPPED;
                    this.constants.playing = !1;
                    3 === this._currentState ? (this._currentState = 2, c = k.VIDEO_PLAYBACK_STATE_PAUSED) : 1 === this._currentState && (this._video.currentTime = 0);
                    this._set("playbackState", c)
                },
                _createVideo : function(c) {
                    var b, g, a = this._video, h = this.url;
                    if (h) {
                        if (c && a && a.parentNode)
                            return a;
                        this.release();
                        a = this._video = document.createElement("video");
                        a.tabindex = 0;
                        this.mediaControlStyle === k.VIDEO_CONTROL_DEFAULT && (a.controls = 1);
                        this.scalingMode = k.VIDEO_SCALING_ASPECT_FIT;
                        this._handles = [j(a, "playing", this, function() {
                            this._currentState = 3;
                            this.constants.playing = !0;
                            this.fireEvent("playing", {
                                url : a.currentSrc
                            });
                            this._set("playbackState", k.VIDEO_PLAYBACK_STATE_PLAYING)
                        }), j(a, "pause", this, "_paused"), j(a, "canplay", this, function() {
                            this._set("loadState", k.VIDEO_LOAD_STATE_PLAYABLE);
                            0 === this._currentState && this.autoplay && a.play()
                        }), j(a, "canplaythrough", this, function() {
                            this._set("loadState", k.VIDEO_LOAD_STATE_PLAYTHROUGH_OK);
                            this.fireEvent("preload")
                        }), j(a, "loadeddata", this, function() {
                            this.fireEvent("load")
                        }), j(a, "loadedmetadata", this, "_metaDataLoaded"), j(a, "durationchange", this, "_durationChange"), j(a, "timeupdate", this, function() {
                            this.constants.currentPlaybackTime = 1E3 * this._video.currentTime;
                            1 === this._currentState && this.pause()
                        }), j(a, "error", this, function() {
                            var b = "Unknown error";
                            switch(a.error.code) {
                                case 1:
                                    b = "Aborted";
                                    break;
                                case 2:
                                    b = "Decode error";
                                    break;
                                case 3:
                                    b = "Network error";
                                    break;
                                case 4:
                                    b = "Unsupported format"
                            }
                            this.constants.playing = !1;
                            this._set("loadState", k.VIDEO_LOAD_STATE_UNKNOWN);
                            this.fireEvent("error", {
                                message : b
                            });
                            this.fireEvent("complete", {
                                reason : k.VIDEO_FINISH_REASON_PLAYBACK_ERROR
                            })
                        }), j(a, "abort", this, "_complete"), j(a, "ended", this, "_complete"), j(a, "stalled", this, "_stalled"), j(a, "waiting", this, "_stalled"), j(a, "mozfullscreenchange", this, "_fullscreenChange"), j(a, "webkitfullscreenchange", this, "_fullscreenChange")];
                        this.domNode.appendChild(a);
                        require.is(h, "Array") || ( h = [h]);
                        for ( c = 0; c < h.length; c++)
                            b = document.createElement("source"), b.src = h[c], ( g = h[c].match(/.+\.([^\/\.]+?)$/)) && f[g[1]] && (b.type = f[g[1]]), a.appendChild(b);
                        return a
                    }
                },
                play : function() {
                    3 !== this._currentState && this._createVideo(1).play()
                },
                pause : function() {
                    3 === this._currentState && this._createVideo(1).pause()
                },
                release : function() {
                    var c = this._video, b = c && c.parentNode;
                    b && (require.each(this._handles, function(b) {
                        b()
                    }), this._handles = [], b.removeChild(c));
                    this._video = null
                },
                stop : function() {
                    this._currentState = 1;
                    this._video.pause();
                    this._video.currentTime = 0
                }
            })
        })
    },
    "Ti/Media" : function() {
        define(["Ti/_/Evented", "Ti/_/lang"], function(i, k) {
            return k.setObject("Ti.Media", i, {
                constants : {
                    UNKNOWN_ERROR : 0,
                    DEVICE_BUSY : 1,
                    NO_CAMERA : 2,
                    NO_VIDEO : 3,
                    VIDEO_CONTROL_DEFAULT : 1,
                    VIDEO_CONTROL_EMBEDDED : 1,
                    VIDEO_CONTROL_FULLSCREEN : 2,
                    VIDEO_CONTROL_NONE : 0,
                    VIDEO_CONTROL_HIDDEN : 0,
                    VIDEO_SCALING_NONE : 0,
                    VIDEO_SCALING_ASPECT_FILL : 2,
                    VIDEO_SCALING_ASPECT_FIT : 1,
                    VIDEO_SCALING_MODE_FILL : 3,
                    VIDEO_PLAYBACK_STATE_STOPPED : 0,
                    VIDEO_PLAYBACK_STATE_PLAYING : 1,
                    VIDEO_PLAYBACK_STATE_PAUSED : 2,
                    VIDEO_LOAD_STATE_PLAYABLE : 1,
                    VIDEO_LOAD_STATE_PLAYTHROUGH_OK : 2,
                    VIDEO_LOAD_STATE_STALLED : 4,
                    VIDEO_LOAD_STATE_UNKNOWN : 0,
                    VIDEO_REPEAT_MODE_NONE : 0,
                    VIDEO_REPEAT_MODE_ONE : 1,
                    VIDEO_FINISH_REASON_PLAYBACK_ENDED : 0,
                    VIDEO_FINISH_REASON_PLAYBACK_ERROR : 1,
                    VIDEO_FINISH_REASON_USER_EXITED : 2
                },
                beep : function() {
                    console.debug('Method "Titanium.Media.beep" is not implemented yet.')
                },
                createAudioPlayer : function() {
                    console.debug('Method "Titanium.Media.createAudioPlayer" is not implemented yet.')
                },
                createAudioRecorder : function() {
                    console.debug('Method "Titanium.Media.createAudioRecorder" is not implemented yet.')
                },
                createItem : function() {
                    console.debug('Method "Titanium.Media.createItem" is not implemented yet.')
                },
                createSound : function() {
                    console.debug('Method "Titanium.Media.createSound" is not implemented yet.')
                },
                createVideoPlayer : function(c) {
                    return new (require("Ti/Media/VideoPlayer"))(c)
                }
            })
        })
    },
    "Ti/_/text" : function() {
        define(function() {
            var i = {};
            return {
                dynamic : !0,
                normalize : function(i, c) {
                    var j = i.split("!"), h = j[0];
                    j.shift();
                    return (/^\./.test(h) ? c(h) : h) + (j.length ? "!" + j.join("!") : "")
                },
                load : function(k, c, j) {
                    k = c.toUrl(k);
                    c = i[k] || c.cache(k);
                    if (!c)
                        if ( c = new XMLHttpRequest, c.open("GET", k, !1), c.send(null), 200 === c.status)
                            c = c.responseText;
                        else
                            throw Error('Failed to load text "' + k + '": ' + c.status);
                    j(c)
                }
            }
        })
    },
    "Ti/UI/MobileWeb/TableViewSeparatorStyle" : function() {
        define("Ti/UI/MobileWeb/TableViewSeparatorStyle", ["Ti/_/lang"], function(i) {
            return i.setObject("Ti.UI.MobileWeb.TableViewSeparatorStyle", {}, {
                constants : {
                    NONE : 0,
                    SINGLE_LINE : 1
                }
            })
        })
    },
    "Ti/_/Gestures/Swipe" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.Swipe", c, {
                name : "swipe",
                _touchStartLocation : null,
                _distanceThresholdPassed : !1,
                _distanceThreshold : 25,
                _angleThreshold : Math.PI / 12,
                processTouchStartEvent : function(c) {
                    1 == c.touches.length && 1 == c.changedTouches.length ? (this._distanceThresholdPassed = !1, this._touchStartLocation = {
                        x : c.changedTouches[0].clientX,
                        y : c.changedTouches[0].clientY
                    }) : this._touchStartLocation = null
                },
                processTouchEndEvent : function(c, h) {
                    0 == c.touches.length && 1 == c.changedTouches.length && this._processSwipeEvent(c, h, !0);
                    this._touchStartLocation = null
                },
                processTouchMoveEvent : function(c, h) {
                    1 == c.touches.length && 1 == c.changedTouches.length && this._processSwipeEvent(c, h, !1)
                },
                processTouchCancelEvent : function() {
                    this._touchStartLocation = null
                },
                _processSwipeEvent : function(c, h, f) {
                    var e = c.changedTouches[0].clientX, c = c.changedTouches[0].clientY;
                    if (this._touchStartLocation) {
                        var b = Math.abs(this._touchStartLocation.x - e), g = Math.abs(this._touchStartLocation.y - c), a = Math.sqrt(Math.pow(this._touchStartLocation.x - e, 2) + Math.pow(this._touchStartLocation.y - c, 2));
                        !this._distanceThresholdPassed && (this._distanceThresholdPassed = a > this._distanceThreshold);
                        this._distanceThresholdPassed && (( a = a <= this._distanceThreshold || 0 === b || 0 === g ? !0 : b > g ? Math.atan(g / b) < this._angleThreshold : Math.atan(b / g) < this._angleThreshold) ? h._isGestureBlocked(this.name) || ( b = b > g ? 0 < this._touchStartLocation.x - e ? "left" : "right" : 0 < this._touchStartLocation.y - c ? "down" : "up", ("left" === b || "right" === b) && k.hitch(h, h._handleTouchEvent(this.name, {
                            x : e,
                            y : c,
                            direction : b,
                            _distance : e - this._touchStartLocation.x,
                            _finishedSwiping : f
                        }))) : this._touchStartLocation = null)
                    }
                }
            })
        })
    },
    "Ti/_/Gestures/TouchEnd" : function() {
        define(["Ti/_/declare", "Ti/_/lang", "Ti/_/Gestures/GestureRecognizer"], function(i, k, c) {
            return i("Ti._.Gestures.TouchEnd", c, {
                name : "touchend",
                processTouchEndEvent : function(c, h) {
                    if (!h._isGestureBlocked(this.name))
                        for (var f = 0; f < c.changedTouches.length; f++)
                            k.hitch(h, h._handleTouchEvent(this.name, {
                                x : c.changedTouches[f].clientX,
                                y : c.changedTouches[f].clientY
                            }))
                }
            })
        })
    },
    "Ti/_/ready" : function() {
        define(function() {
            function i(b, c, a) {
                var e, f, i;
                require.is(b, "Number") || ( a = c, c = b, b = 1E3);
                e = a ? function() {
                    a.call(c)
                } : c;
                if (j)
                    e();
                else {
                    e.priority = b;
                    for ( f = 0, i = h.length; f < i && b >= h[f].priority; f++);
                    h.splice(f, 0, e)
                }
            }

            var k = document, c = {
                loaded : 1,
                complete : 1
            }, j = !!c[k.readyState], h = [];
            if (!j) {
                var f = function(b) {
                    if (!(j || b && "readystatechange" == b.type && !c[k.readyState])) {
                        for (; h.length; )
                            h.shift()();
                        j = 1
                    }
                };
                h.concat([require.on(k, "DOMContentLoaded", f), require.on(window, "load", f)]);
                if ("onreadystatechange" in k)
                    h.push(require.on(k, "readystatechange", f));
                else {
                    var e = function() {
                        c[k.readyState] ? f() : setTimeout(e, 30)
                    };
                    e()
                }
            }
            i.load = function(b, c, a) {
                i(a)
            };
            return i
        })
    },
    "url:Ti/_/UI/WebViewBridge.js" : 'var a,b,w=window,p=w.parent,u=w.onunload;p&&p.Ti&&(a=p.Ti.API,b=p.Ti.App,Ti={API:{log:a.log,debug:a.debug,error:a.error,info:a.info,warn:a.warn},App:{addEventListener:b.addEventListener,removeEventListener:b.removeEventListener,fireEvent:b.fireEvent}});w.onunload=function(){Ti.App.fireEvent("WEBVIEW_ID");u&&u()};',
    "Ti/_/include" : function() {
        define(function() {
            var i = {}, k = [];
            return {
                dynamic : !0,
                normalize : function(c, i) {
                    var h = c.split("!"), f = h[0];
                    h.shift();
                    return (/^\./.test(f) ? i(f) : f) + (h.length ? "!" + h.join("!") : "")
                },
                load : function(c, j, h) {
                    var f;
                    f = c.split("!");
                    var e;
                    if ( e = 1 < f.length && "sandbox" === f[0])
                        f.shift(), c = f.join("!");
                    c = j.toUrl(/^\//.test(c) ? c : "./" + c, k.length ? {
                        name : k[k.length - 1]
                    } : null);
                    f = i[c] || j.cache(c);
                    if (!f)
                        if ( f = new XMLHttpRequest, f.open("GET", c, !1), f.send(null), 200 === f.status)
                            f = f.responseText;
                        else
                            throw Error('Failed to load include "' + c + '": ' + f.status);
                    k.push(c);
                    try {
                        j.evaluate(i[c] = f, 0, !e)
                    } catch(b) {
                        throw b;
                    } finally {
                        k.pop()
                    }
                    h(f)
                }
            }
        })
    }
});
require("Ti,Ti/App/Properties,Ti/Facebook,Ti/Filesystem,Ti/Media/VideoPlayer,Ti/Network/HTTPClient,Ti/Platform/DisplayCaps,Ti/UI/2DMatrix,Ti/UI/ActivityIndicator,Ti/UI/AlertDialog,Ti/UI/Animation,Ti/UI/Button,Ti/UI/EmailDialog,Ti/UI/ImageView,Ti/UI/Label,Ti/UI/OptionDialog,Ti/UI/ScrollView,Ti/UI/ScrollableView,Ti/UI/Slider,Ti/UI/Switch,Ti/UI/Tab,Ti/UI/TabGroup,Ti/UI/TableView,Ti/UI/TableViewRow,Ti/UI/TableViewSection,Ti/UI/TextArea,Ti/UI/TextField,Ti/UI/WebView,Ti/UI/Window,Ti/Utils,Ti/XML,Ti/_/text,Ti/_/text!Ti/_/UI/WebViewBridge.js".split(",")); 